CN108829872A - 无损压缩文件的快速处理方法、设备、***及存储介质 - Google Patents
无损压缩文件的快速处理方法、设备、***及存储介质 Download PDFInfo
- Publication number
- CN108829872A CN108829872A CN201810657224.8A CN201810657224A CN108829872A CN 108829872 A CN108829872 A CN 108829872A CN 201810657224 A CN201810657224 A CN 201810657224A CN 108829872 A CN108829872 A CN 108829872A
- Authority
- CN
- China
- Prior art keywords
- character
- coding
- file
- compressed
- processed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007906 compression Methods 0.000 title claims abstract description 80
- 230000006835 compression Effects 0.000 title claims abstract description 71
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000013507 mapping Methods 0.000 claims abstract description 62
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000000034 method Methods 0.000 claims description 51
- 230000006837 decompression Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 244000118350 Andrographis paniculata Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种无损压缩文件的快速处理方法、设备、***及存储介质。本发明的处理设备获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,通过在字符和编码之间建立一一映射,直接用编码替换字符,此压缩过程不需要查找字符对应的编码,节省了大量的字符比较时间,有效地提高了文件的处理速度。
Description
技术领域
本发明涉及文件压缩的技术领域,尤其涉及一种无损压缩文件的快速处理方法、设备、***及存储介质。
背景技术
为提高外存的使用效率,往往需要对保存的数据文件进行压缩。对于一个有损压缩,解压后无法还原压缩前的完整信息。但是,对于一些重要信息,必须采用无损压缩,以便解压后的信息跟压缩前的信息一模一样。首先,只有存在冗余度的文件才能被无损压缩。其次,对同一源文件进行压缩,不同的编码方法可以得到不同的压缩比。然而,如果在压缩过程中的编码速度太慢,则需要占用用户太多的文件压缩等待时间。同样,如果对压缩文件的解压速度过慢,同样会使用户等待时间太长。因此,研究提高文件的压缩与解压速度的方法具有非常重要的意义。
在计算机的软硬件环境不变的情况下,要想提高压缩过程中的编码速度,关键是需要一个快的码字查询方法,同样,要提高压缩文件的解压速度,需要设计一个更快的字符查询方法。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种无损压缩文件的快速处理方法、设备、***及存储介质,旨在解决现有技术中文件的压缩与解压过程中,编码和解码速度慢的问题。
为实现上述目的,本发明提供一种无损压缩文件的快速处理方法,所述方法包括以下步骤:
获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码;
将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系;
分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
优选地,所述分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码之后,所述方法还包括:
获取所述待压缩源文件的压缩文件;
基于所述压缩文件的所有待处理编码及与所述待处理编码对应的若干字符建立二叉树;
遍历所述二叉树,分别获取与所述压缩文件的待处理编码对应的字符,完成对所述压缩文件的解码。
优选地,所述获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,具体包括:
获取所述待压缩源文件的所有待处理字符,与所述待处理字符对应的编码及所述待处理字符在所述待压缩源文件中的位置;
相应地,所述将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,具体包括:
根据所述待处理字符在所述待压缩源文件中的位置,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
优选地,所述分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,具体包括:
从所述待压缩源文件中读取当前字符;
用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符;
在所述当前字符是所述待压缩源文件中的最后一个字符时,完成对所述待压缩源文件的编码;
在所述当前字符不是所述待压缩源文件中的最后一个字符时,从所述源文件中读取下一个字符;
重复执行所述用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符的步骤,直至完成对所述待压缩源文件的编码。
优选地,所述将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系之后,所述方法还包括:
将所述映射关系保存在内存中。
优选地,所述获取所述待压缩源文件的压缩文件之后,所述方法还包括:
基于所述压缩文件中的待处理编码,获取与所述待处理编码对应的字符;
根据所述待处理编码及与所述待处理编码对应的字符建立编码表;
相应地,所述基于所述压缩文件中待处理编码对应的字符建立二叉树,具体包括:
基于所述编码表,建立二叉树。
优选地,所述遍历所述二叉树,分别获取与所述压缩文件的待处理编码对应的字符,具体包括:
从所述压缩文件中读取当前编码;
遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码;
在所述当前编码是所述压缩文件中的最后一个编码时,完成对所述压缩文件的解码;
在所述当前编码不是所述压缩文件中的最后一个编码时,从所述压缩文件中读取下一个编码;
重复执行遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码的步骤,直至完成对所述压缩文件中所有编码对应的字符的查找。
此外,为实现上述目的,本发明还提供一种无损压缩文件的快速处理设备,所述无损压缩文件的快速处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的无损压缩文件的快速处理程序,所述无损压缩文件的快速处理程序配置为实现如上文所述的无损压缩文件的快速处理方法的步骤。
此外,为实现上述目的,本发明还提供一种无损压缩文件的快速处理***,所述无损压缩文件的快速处理***包括:获取模块、建立模块与替换模块;
所述获取模块,用于获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码;
所述建立模块,用于将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系;
所述替换模块,用于分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有无损压缩文件的快速处理程序,所述无损压缩文件的快速处理程序被处理器执行时实现如上文所述的无损压缩文件的快速处理方法的步骤。
在本发明中,处理设备获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,通过在字符和编码之间建立一一映射,直接用编码替换字符,此压缩过程不需要查找字符对应的编码,节省了大量的字符比较时间,有效地提高了文件处理过程中的处理速度。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的无损压缩文件的快速处理设备结构示意图;
图2为本发明无损压缩文件的快速处理方法第一实施例的流程示意图;
图3为本发明无损压缩文件的快速处理方法第二实施例的流程示意图;
图4为本发明无损压缩文件的快速处理***第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的无损压缩文件的快速处理设备的结构示意图。
如图1所示,该无损压缩文件的快速处理设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对无损压缩文件的快速处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及无损压缩文件的快速处理程序。
图1所示的无损压缩文件的快速处理设备中,网络接口1004主要用于与外部网络进行数据通信;用户接口1003主要用于接收用户的输入指令;所述无损压缩文件的快速处理设备通过处理器1001调用存储器1005中存储的无损压缩文件的快速处理程序,并执行以下操作:
获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码;
将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系;
分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
进一步地,处理器1001可以调用存储器1005中存储的无损压缩文件的快速处理程序,还执行以下操作:
获取所述待压缩源文件的压缩文件;
基于所述压缩文件的所有待处理编码及与所述待处理编码对应的若干字符建立二叉树;
遍历所述二叉树,分别获取与所述压缩文件的待处理编码对应的字符,完成对所述压缩文件的解码。
进一步地,处理器1001可以调用存储器1005中存储的无损压缩文件的快速处理程序,还执行以下操作:
获取所述待压缩源文件的所有待处理字符,与所述待处理字符对应的编码及所述待处理字符在所述待压缩源文件中的位置;
相应地,所述将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,具体包括:
根据所述待处理字符在所述待压缩源文件中的位置,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
进一步地,处理器1001可以调用存储器1005中存储的无损压缩文件的快速处理程序,还执行以下操作:
从所述待压缩源文件中读取当前字符;
用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符;
在所述当前字符是所述待压缩源文件中的最后一个字符时,完成对所述待压缩源文件的编码;
在所述当前字符不是所述待压缩源文件中的最后一个字符时,从所述源文件中读取下一个字符;
重复执行所述用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符的步骤,直至完成对所述待压缩源文件的编码。
进一步地,处理器1001可以调用存储器1005中存储的无损压缩文件的快速处理程序,还执行以下操作:
将所述映射关系保存在内存中。
进一步地,处理器1001可以调用存储器1005中存储的无损压缩文件的快速处理程序,还执行以下操作:
基于所述压缩文件中的待处理编码,获取与所述待处理编码对应的字符;
根据所述待处理编码及与所述待处理编码对应的字符建立编码表;
相应地,所述基于所述压缩文件中待处理编码对应的字符建立二叉树,具体包括:
基于所述编码表,建立二叉树。
进一步地,处理器1001可以调用存储器1005中存储的无损压缩文件的快速处理程序,还执行以下操作:
从所述压缩文件中读取当前编码;
遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码;
在所述当前编码是所述压缩文件中的最后一个编码时,完成对所述压缩文件的解码;
在所述当前编码不是所述压缩文件中的最后一个编码时,从所述压缩文件中读取下一个编码;
重复执行遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码的步骤,直至完成对所述压缩文件中所有编码对应的字符的查找。
本实施例通过上述方案,处理设备获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,通过在字符和编码之间建立一一映射,直接用编码替换字符,此压缩过程不需要查找字符对应的编码,节省了大量的字符比较时间,有效地提高了文件处理过程中的处理速度。
基于上述硬件结构,提出本发明无损压缩文件的快速处理方法实施例。
参照图2,图2为本发明无损压缩文件的快速处理方法第一实施例的流程示意图。
在第一实施例中,所述无损压缩文件的快速处理方法包括以下步骤:
S10:获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码。
可以理解的是,只要统计了源文件中所含有的所有字符,以及各种字符在源文件中出现的次数,就可以对该源文件进行压缩。
比如,源文件中有n种不同的字符Ci,Wi是字符Ci在文件中出现的次数,在统计出所述源文件中所含有的字符之后,也可以获得字符Ci对应的前缀码字bi。
S20:将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
在具体实现时,在获取所述待压缩源文件的所有待处理字符及与所述待处理字符对应的编码时,也可以同时获取所述待处理字符在所述待压缩源文件中的位置。
根据所述待处理字符在所述待压缩源文件中的位置,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
可以理解的是,在建立所述映射关系之后,可以将所述映射关系保存在内存中,这样,虽然占据了一定的存储空间,却加快了编码的速度。
S30:分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
在具体实现中,可以从待压缩源文件中读出第一个字符,用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符,在所述当前字符是所述待压缩源文件中的最后一个字符时,即完成了对所述待压缩源文件的编码,即压缩过程,在所述当前字符不是所述待压缩源文件中的最后一个字符时,从所述源文件中读取下一个字符,并重复执行用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符的步骤,直至完成对所述待压缩源文件的编码。
在本实施例中,处理设备获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,通过在字符和编码之间建立一一映射,直接用编码替换字符,此压缩过程不需要查找字符对应的编码,节省了大量的字符比较时间,有效地提高了文件处理过程中的处理速度。
进一步地,如图3所示,基于第一实施例提出本发明无损压缩文件的快速处理方法第二实施例,在本实施例中,步骤S30之后,所述方法还包括:
S40:获取所述待压缩源文件的压缩文件。
S50:基于所述压缩文件的所有待处理编码对应的若干字符建立二叉树。
可以理解的是,在获取压缩文件之后,可以获取所述压缩文件中的待处理编码及与所述待处理编码对应的字符建议编码表。
由于无损压缩文件的编码都是前缀码,即编码表中任何一个编码都不可能是其他编码的前缀,因此,根据编码表中的编码能够建立一个二叉树。
在具体实现中,所述二叉树的建立过程如下:
(1)定义二叉树的结构:typedef struct node1*bintree;struch node1{unsigned char ch;bintree lchild,rchild};
(2)向***申请根据结点t,并满足t->lchild=l->rchild=NULL;
(3)令i=1,指向编码表中的第一个码字;
(4)令j=1,指向码字bi的第一位二进制数;
(5)令p=t,表示从根结点开始搜索;
(6)如果bij=0且p->lchild<>NULL,则使p=p->lchild;
(7)如果bij=0且p->lchild=NULL,则向***申请一个新的结点q。同时进行如下操作:
q->lchild=q->rchild=NULL;p->lchild=q;p=q;
(8)如果bij=1且p->rchild<>NULL,则使p=p->rchild;
(9)如果bij=1且p->rchild=NULL,则向***申请一个新的结点q。同时进行如下操作:
q->lchild=q->rchild=NULL;p->rchild=q;p=q;
(10)如果j<li,则执行j=j+1并返回步骤(6)
(11)执行p->ch=ci;
(12)如果i<n,则执行i=i+1并返回步骤(4);
(13)二叉树建立结束。
可以理解的是,二叉树的建立采用的是递归的思想:给定一个指向根节点的指针,然后递归调用creat函数,自动生成一个二叉树,当然,建立之前,首先要先定义节点结构。二叉树的遍历采用的也是递归的思想:如果节点有数据,则按照遍历规则遍历根节点和孩子节点,没有数据则返回直到所有数据都遍历完,递归结束。
其中,lchild和rchild分别表示二叉树的左右支树,char ch即char date,定义数据的意思,将相应的数据一一存入二叉树里,->表示指向,建立了根结点之后,p=t,表示从根结点开始搜索,并将t赋给了p,前置遍历如果p->lchild<>NULL,表示节点已经存在,则使p=p->lchild即当前节点赋值给p,如果p->lchild=NULL,表示节点不存在,则向***申请一个新节点q,并给新节点赋值将p赋值给q,以此重重复进行二叉树结点的建立并通过执行p->ch=ci,将ci,即字符存储在所述二叉树的结点中,并且通过bij=0且p->lchild<>NULL,则使p=p->lchild和bij=1且p->rchild<>NULL,则使p=p->rchild将二进制数据中的0都存储在了左支树中,将二进制数据中的1都存储在了右支树中。
从上述二叉树的建立过程可以看出,所有字符都在于二叉树的叶子结点中。
S60:遍历所述二叉树,分别获取与所述压缩文件的待处理编码对应的字符,完成对所述压缩文件的解码。
在具体实现中,从所述压缩文件中读取当前编码;遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码;在所述当前编码是所述压缩文件中的最后一个编码时,完成对所述压缩文件的解码;在所述当前编码不是所述压缩文件中的最后一个编码时,从所述压缩文件中读取下一个编码;重复执行遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码的步骤,直至完成对所述压缩文件中所有编码对应的字符的查找。
运用建立的二叉树实现压缩文件快速解码的过程如下:
(1)从压缩文件中读出一位二进制数bt;
(2)如果已经读至压缩方件末尾,则跳至步骤(9);
(3)令p=t;
(4)如果bt=0,则使p=p->lchild;
(5)如果bt=1,则使p=p->rchild;
(6)重复步骤(1),(2),(3),(4),(5),直到p->lchild=p->rchild
=0为止;
(7)将字符p->ch写入解压文件;
(8)返回步骤(1);
(9)解压过程结束。
通过二叉树的建立过程可知,已将二进制数据中的0都存储在了左支树中,将二进制数据中的1都存储在了右支树中,所以在搜索字符的过程中,从压缩文件中读出第一位二进制数,如果读取的二进制数为0,则遍历所述二叉树的所有左支树,如果读取的二进制数为1,则遍历所述二叉树的所有右支树。
具体的过程为从压缩文件中读出一位二进制编码bt,将根节点t赋值给p,从p开始前置遍历查询,如果为bt为0返回左边节点数据赋值给p,如果bt为1返回右节点数据赋值给p,如果遍历左节点合右节点都为0返回p并赋值给ch,并将ch写入压缩文件,进程结束。
从上述解码过程可以看出,此种方法搜索字符的比较次数等于码字的长度,减少了搜索时间。
在本实施例中,提出了一种基于二叉树的压缩文件解码方法,建立了对应编码表的二叉树,通过遍历所述二叉树的结点,进行压缩文件中码字对应的字符的查询,减少了查找时的比较次数,从而减少了解压时所花费的时间。
为了验证本专利提供的编码及解码方法的效果,下面将以一个具体文件的压缩及解压过程作为验证。
此无损压缩和解压的测试环境为:(1)软件开发环境:indows 7,MicrosoftVisual Studio 2008;(2)软件运行环境:Windows 7;(3)硬件开发环境:Dell vostro220PC.Dual-Core CPU 2.70GHz;2GB DDR3SDRAM内存;320GB SATA(7200RPM)硬盘;(4)硬件运行环境:Dell vostro220PC.(5)编程语言及版本号:MicrosoftVisual C++2008。
待压缩的源文件为:Word文件,大小为162304字节。
该文本文件所含字符及每个字符Ci在文件中出现的次数Wi统计如表1所示:
表1文件中每种字符Ci及其出现的次数Wi
以哈夫曼编码、香农编码及费诺编码对上述同一Word文件压缩为例,用本发明提供的搜索码字方式在编码过程中所花费的时间分别为5296.532475微秒,5317.198312微秒,5344.752762微秒,与常规方法相比,耗时减少很多,效果明显。
同样地,以哈夫曼编码、香农编码及费诺编码对同一压缩文件进行解压,用本发明提供的基于二叉树的搜索字符方式在解过程中所花费的时间分别为9332.854102微秒,9083.64842微秒,9265.994041微秒,也采用了其他方法进行解压,结果显示都需要用到更多的时间,可见本发明提供的解压方法在减少时间、提高效率方面具有明显的优势。
因此,本发明的字符码字一一映射搜索法能有效地提高文件的压缩速度。同样,二叉树搜索字符法能更快地提高文件的解压速度。
参照图4,图4为本发明无损压缩文件的快速处理***第一实施例的功能模块图,基于无损压缩文件的快速处理方法,提出本发明无损压缩文件的快速处理***的第一实施例。
在本实施例中,所述无损压缩文件的快速处理***包括:获取模块10、建立模块20与替换模块30;
所述获取模块10,用于获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码。
可以理解的是,只要统计了源文件中所含有的所有字符,以及各种字符在源文件中出现的次数,就可以对该源文件进行压缩。
比如,源文件中有n种不同的字符Ci,Wi是字符Ci在文件中出现的次数,在统计出所述源文件中所含有的字符之后,也可以获得字符Ci对应的前缀码字bi。
所述建立模块20,用于将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
在具体实现时,在获取所述待压缩源文件的所有待处理字符及与所述待处理字符对应的编码时,也可以同时获取所述待处理字符在所述待压缩源文件中的位置。
根据所述待处理字符在所述待压缩源文件中的位置,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
可以理解的是,在建立所述映射关系之后,可以将所述映射关系保存在内存中,这样,虽然占据了一定的存储空间,却加快了编码的速度。
所述替换模块30,用于分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
在具体实现中,可以从待压缩源文件中读出第一个字符,用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符,在所述当前字符是所述待压缩源文件中的最后一个字符时,即完成了对所述待压缩源文件的编码,即压缩过程,在所述当前字符不是所述待压缩源文件中的最后一个字符时,从所述源文件中读取下一个字符,并重复执行用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符的步骤,直至完成对所述待压缩源文件的编码。
在本实施例中,处理设备获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,通过在字符和编码之间建立一一映射,直接用编码替换字符,此压缩过程不需要查找字符对应的编码,节省了大量的字符比较时间,有效地提高了文件处理过程中的处理速度。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有无损压缩文件的快速处理程序,所述无损压缩文件的快速处理程序被处理器执行时实现如下操作:
获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码;
将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系;
分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
进一步地,所述无损压缩文件的快速处理程序被处理器执行时还实现如下操作:
获取所述待压缩源文件的压缩文件;
基于所述压缩文件的所有待处理编码及与所述待处理编码对应的若干字符建立二叉树;
遍历所述二叉树,分别获取与所述压缩文件的待处理编码对应的字符,完成对所述压缩文件的解码。
进一步地,所述无损压缩文件的快速处理程序被处理器执行时还实现如下操作:
获取所述待压缩源文件的所有待处理字符,与所述待处理字符对应的编码及所述待处理字符在所述待压缩源文件中的位置;
相应地,所述将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,具体包括:
根据所述待处理字符在所述待压缩源文件中的位置,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
进一步地,所述无损压缩文件的快速处理程序被处理器执行时还实现如下操作:
从所述待压缩源文件中读取当前字符;
用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符;
在所述当前字符是所述待压缩源文件中的最后一个字符时,完成对所述待压缩源文件的编码;
在所述当前字符不是所述待压缩源文件中的最后一个字符时,从所述源文件中读取下一个字符;
重复执行所述用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符的步骤,直至完成对所述待压缩源文件的编码。
进一步地,所述无损压缩文件的快速处理程序被处理器执行时还实现如下操作:
将所述映射关系保存在内存中。
进一步地,所述无损压缩文件的快速处理程序被处理器执行时还实现如下操作:
基于所述压缩文件中的待处理编码,获取与所述待处理编码对应的字符;
根据所述待处理编码及与所述待处理编码对应的字符建立编码表;
相应地,所述基于所述压缩文件中待处理编码对应的字符建立二叉树,具体包括:
基于所述编码表,建立二叉树。
进一步地,所述无损压缩文件的快速处理程序被处理器执行时还实现如下操作:
从所述压缩文件中读取当前编码;
遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码;
在所述当前编码是所述压缩文件中的最后一个编码时,完成对所述压缩文件的解码;
在所述当前编码不是所述压缩文件中的最后一个编码时,从所述压缩文件中读取下一个编码;
重复执行遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码的步骤,直至完成对所述压缩文件中所有编码对应的字符的查找。
本实施例通过上述方案,处理设备获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,通过在字符和编码之间建立一一映射,直接用编码替换字符,此压缩过程不需要查找字符对应的编码,节省了大量的字符比较时间,有效地提高了文件处理过程中的处理速度。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种无损压缩文件的快速处理方法,其特征在于,所述方法包括以下步骤:
获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码;
将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系;
分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
2.如权利要求1所述的方法,其特征在于,所述分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码之后,所述方法还包括:
获取所述待压缩源文件的压缩文件;
基于所述压缩文件的所有待处理编码及与所述待处理编码对应的若干字符建立二叉树;
遍历所述二叉树,分别获取与所述压缩文件的待处理编码对应的字符,完成对所述压缩文件的解码。
3.如权利要求1所述的方法,其特征在于,所述获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码,具体包括:
获取所述待压缩源文件的所有待处理字符,与所述待处理字符对应的编码及所述待处理字符在所述待压缩源文件中的位置;
相应地,所述将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系,具体包括:
根据所述待处理字符在所述待压缩源文件中的位置,将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系。
4.如权利要求1所述的方法,其特征在于,所述分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码,具体包括:
从所述待压缩源文件中读取当前字符;
用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符;
在所述当前字符是所述待压缩源文件中的最后一个字符时,完成对所述待压缩源文件的编码;
在所述当前字符不是所述待压缩源文件中的最后一个字符时,从所述源文件中读取下一个字符;
重复执行所述用所述映射关系中与所述当前字符对应的编码替换所述当前字符,并判断所述当前字符是否是所述待压缩源文件中的最后一个字符的步骤,直至完成对所述待压缩源文件的编码。
5.如权利要求1所述的方法,其特征在于,所述将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系之后,所述方法还包括:
将所述映射关系保存在内存中。
6.如权利要求2所述的方法,其特征在于,所述获取所述待压缩源文件的压缩文件之后,所述方法还包括:
基于所述压缩文件中的待处理编码,获取与所述待处理编码对应的字符;
根据所述待处理编码及与所述待处理编码对应的字符建立编码表;
相应地,所述基于所述压缩文件中待处理编码对应的字符建立二叉树,具体包括:
基于所述编码表,建立二叉树。
7.如权利要求2所述的方法,其特征在于,所述遍历所述二叉树,分别获取与所述压缩文件的待处理编码对应的字符,具体包括:
从所述压缩文件中读取当前编码;
遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码;
在所述当前编码是所述压缩文件中的最后一个编码时,完成对所述压缩文件的解码;
在所述当前编码不是所述压缩文件中的最后一个编码时,从所述压缩文件中读取下一个编码;
重复执行遍历所述二叉树,查找与所述当前编码对应的字符,并判断所述当前编码是否是所述压缩文件中的最后一个编码的步骤,直至完成对所述压缩文件中所有编码对应的字符的查找。
8.一种无损压缩文件的快速处理设备,其特征在于,所述无损压缩文件的快速处理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的无损压缩文件的快速处理程序,所述无损压缩文件的快速处理程序配置为实现如权利要求1至7中任一项所述的无损压缩文件的快速处理方法的步骤。
9.一种无损压缩文件的快速处理***,其特征在于,所述无损压缩文件的快速处理***包括:获取模块、建立模块与替换模块;
所述获取模块,用于获取待压缩源文件的所有待处理字符及与所述待处理字符对应的编码;
所述建立模块,用于将所述待处理字符及与所述待处理字符对应的编码之间建立映射关系;
所述替换模块,用于分别用所述映射关系中与所述待压缩源文件中的待处理字符对应的编码替换所述待处理字符,完成对所述待压缩源文件的编码。
10.一种存储介质,其特征在于,所述存储介质上存储有无损压缩文件的快速处理程序,所述无损压缩文件的快速处理程序被处理器执行时实现如权利要求1至7中任一项所述的无损压缩文件的快速处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810657224.8A CN108829872B (zh) | 2018-06-22 | 2018-06-22 | 无损压缩文件的快速处理方法、设备、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810657224.8A CN108829872B (zh) | 2018-06-22 | 2018-06-22 | 无损压缩文件的快速处理方法、设备、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108829872A true CN108829872A (zh) | 2018-11-16 |
CN108829872B CN108829872B (zh) | 2021-03-09 |
Family
ID=64138277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810657224.8A Expired - Fee Related CN108829872B (zh) | 2018-06-22 | 2018-06-22 | 无损压缩文件的快速处理方法、设备、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108829872B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527753A (zh) * | 2020-12-11 | 2021-03-19 | 平安科技(深圳)有限公司 | Dns解析记录无损压缩方法、装置、电子设备及存储介质 |
CN113163198A (zh) * | 2021-03-19 | 2021-07-23 | 北京百度网讯科技有限公司 | 图像压缩方法、解压方法、装置、设备及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350624A (zh) * | 2008-09-11 | 2009-01-21 | 中国科学院计算技术研究所 | 一种支持ansi编码的中文文本的压缩方法 |
CN101739462A (zh) * | 2009-12-31 | 2010-06-16 | 中兴通讯股份有限公司 | 可扩展标记语言编码方法、解码方法和客户端 |
CN101783788A (zh) * | 2009-01-21 | 2010-07-21 | 联想(北京)有限公司 | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 |
US20110299791A1 (en) * | 2010-06-02 | 2011-12-08 | Altek Corporation | Lossless image compression method |
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
US8606351B2 (en) * | 2011-12-28 | 2013-12-10 | General Electric Company | Compression of electrocardiograph signals |
CN104021121A (zh) * | 2013-02-28 | 2014-09-03 | 北京四维图新科技股份有限公司 | 一种文本数据压缩方法、装置及服务器 |
CN104283567A (zh) * | 2013-07-02 | 2015-01-14 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
CN105608214A (zh) * | 2015-12-30 | 2016-05-25 | 杭州中奥科技有限公司 | 对布控车牌号码进行快速搜索的方法 |
CN105989071A (zh) * | 2015-02-10 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 获取用户网络操作特征的方法及设备 |
CN106357275A (zh) * | 2016-08-30 | 2017-01-25 | 国网冀北电力有限公司信息通信分公司 | 一种哈夫曼压缩方法及装置 |
CN206585493U (zh) * | 2016-12-27 | 2017-10-24 | 哈尔滨理工大学 | 一种基于显式模型预测控制的永磁同步电机控制*** |
CN107463676A (zh) * | 2017-08-04 | 2017-12-12 | 杭州安恒信息技术有限公司 | 文本数据存储方法及装置 |
-
2018
- 2018-06-22 CN CN201810657224.8A patent/CN108829872B/zh not_active Expired - Fee Related
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101350624A (zh) * | 2008-09-11 | 2009-01-21 | 中国科学院计算技术研究所 | 一种支持ansi编码的中文文本的压缩方法 |
CN101783788A (zh) * | 2009-01-21 | 2010-07-21 | 联想(北京)有限公司 | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 |
CN101739462A (zh) * | 2009-12-31 | 2010-06-16 | 中兴通讯股份有限公司 | 可扩展标记语言编码方法、解码方法和客户端 |
US20110299791A1 (en) * | 2010-06-02 | 2011-12-08 | Altek Corporation | Lossless image compression method |
US8606351B2 (en) * | 2011-12-28 | 2013-12-10 | General Electric Company | Compression of electrocardiograph signals |
CN104021121A (zh) * | 2013-02-28 | 2014-09-03 | 北京四维图新科技股份有限公司 | 一种文本数据压缩方法、装置及服务器 |
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
CN104283567A (zh) * | 2013-07-02 | 2015-01-14 | 北京四维图新科技股份有限公司 | 一种名称数据的压缩、解压缩方法及设备 |
CN105989071A (zh) * | 2015-02-10 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 获取用户网络操作特征的方法及设备 |
CN105608214A (zh) * | 2015-12-30 | 2016-05-25 | 杭州中奥科技有限公司 | 对布控车牌号码进行快速搜索的方法 |
CN106357275A (zh) * | 2016-08-30 | 2017-01-25 | 国网冀北电力有限公司信息通信分公司 | 一种哈夫曼压缩方法及装置 |
CN206585493U (zh) * | 2016-12-27 | 2017-10-24 | 哈尔滨理工大学 | 一种基于显式模型预测控制的永磁同步电机控制*** |
CN107463676A (zh) * | 2017-08-04 | 2017-12-12 | 杭州安恒信息技术有限公司 | 文本数据存储方法及装置 |
Non-Patent Citations (2)
Title |
---|
MORTUZA ALI ET AL.: ""Lossless image coding using binary tree decomposition of prediction residuals"", 《PICTURE CODING SYMPOSIUM》 * |
田端财 等: ""基于哈夫曼编码的图像压缩技术研究"", 《科技资讯》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527753A (zh) * | 2020-12-11 | 2021-03-19 | 平安科技(深圳)有限公司 | Dns解析记录无损压缩方法、装置、电子设备及存储介质 |
CN112527753B (zh) * | 2020-12-11 | 2023-05-26 | 平安科技(深圳)有限公司 | Dns解析记录无损压缩方法、装置、电子设备及存储介质 |
CN113163198A (zh) * | 2021-03-19 | 2021-07-23 | 北京百度网讯科技有限公司 | 图像压缩方法、解压方法、装置、设备及存储介质 |
CN113163198B (zh) * | 2021-03-19 | 2022-12-06 | 北京百度网讯科技有限公司 | 图像压缩方法、解压方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108829872B (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8120516B2 (en) | Data compression using a stream selector with edit-in-place capability for compressed data | |
US10187081B1 (en) | Dictionary preload for data compression | |
US5870036A (en) | Adaptive multiple dictionary data compression | |
US20120319876A1 (en) | Method and System for Data Compression | |
US20090300015A1 (en) | Aging and compressing multimedia content | |
JP2003218703A (ja) | データ符号化装置及びデータ復号装置 | |
CN101783788A (zh) | 文件压缩、解压缩方法、装置及压缩文件搜索方法、装置 | |
CN110532347B (zh) | 一种日志数据处理方法、装置、设备和存储介质 | |
CN106849956B (zh) | 压缩方法、解压缩方法、装置和数据处理*** | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
US20130054543A1 (en) | Inverted Order Encoding in Lossless Compresssion | |
US20190065518A1 (en) | Context aware delta algorithm for genomic files | |
CN108628898A (zh) | 数据入库的方法、装置和设备 | |
CN108829872A (zh) | 无损压缩文件的快速处理方法、设备、***及存储介质 | |
US9665590B2 (en) | Bitmap compression for fast searches and updates | |
CN109408471B (zh) | 一种基于匹配树的压缩包解压方法、装置及存储介质 | |
CN111767280A (zh) | 数据处理方法、装置及存储介质 | |
US10168909B1 (en) | Compression hardware acceleration | |
CN115765754A (zh) | 一种数据编码方法及一种编码数据比较方法 | |
US20220199202A1 (en) | Method and apparatus for compressing fastq data through character frequency-based sequence reordering | |
CN114647764A (zh) | 图结构的查询方法、装置及存储介质 | |
US9160820B2 (en) | Large volume data transfer | |
CN111538730A (zh) | 一种基于哈希桶算法的数据统计的方法及其*** | |
CN113535709B (zh) | 数据处理方法、装置及电子设备 | |
CN114070471B (zh) | 一种测试数据包传输方法、装置、***、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210309 |
|
CF01 | Termination of patent right due to non-payment of annual fee |