存储程序、存储方法、存储装置、解压缩程序、解压缩方法和解压缩装置制造方法及图纸

技术编号:11358592 阅读:114 留言:0更新日期:2015-04-29 09:37
本发明专利技术的目的一个方面是为了降低用于压缩的压缩字典数据的大小。在一个实施例中,通过指令执行压缩的计算机执行下述处理来生成压缩字典数据:该处理用于将要被压缩的字符信息和分配给字符信息的压缩码的码长存储在存储区域中的由具有预定数量的位的不同位串指示的每个存储位置处,该位串包括压缩码,在该存储区域中具有预定数量的位串指示存储位置。

【技术实现步骤摘要】
【国外来华专利技术】存储程序、存储方法、存储装置、解压缩程序、解压缩方法和解压缩装置
本专利技术涉及一种数据压缩/解压缩技术。
技术介绍
在被称为哈夫曼(Huffman)编码的压缩/解压缩算法中,包括在要被压缩的数据中的每个符号(字符等)与被分配给该符号的压缩码之间的关系由二叉树结构指示。该二叉树被称为哈夫曼树。哈夫曼树的每个叶部分(尾端)的数据指示符号,并且与该符号相对应的压缩码指示从哈夫曼树的根(开始端)至叶的搜索路径。在使用哈夫曼编码的解压缩处理中,通过反复从经压缩数据读出1位的数据并且确定在哈夫曼树中的与所读取数据相对应的分支(树结构的根或节点部分)来执行对哈夫曼树的搜索。通过执行对哈夫曼树的搜索来识别与压缩数据中的位串(即,压缩码)相对应的符号。在针对哈夫曼编码的压缩/解压缩算法中,包括指示引用目的地的信息(诸如指针;在下文中被称为指针)以及解压缩字符码的数据结构被包括在哈夫曼树的数据结构中的每个中。在对哈夫曼树的搜索中进行的分支的确定是通过根据从压缩数据所读出的位选择指示下一个引用目的地的指针执行的。也就是说,根据从压缩数据所读出的位来确定包括在每个分支的数据结构中的多个指针中的哪个指针被使用。下一个要被引用的数据结构由与从压缩数据所读出的位相对应的指针指示。在经历了根据压缩码的末位进行的确定的数据结构中,指示与压缩码相对应的符号的叶的数据结构被存储。同时,存在有从压缩数据读出预定长度位串并且基于所读取的位串来识别解压缩字符数据的技术(例如,专利文献1)。在哈夫曼编码中,根据出现的频率来设置压缩码的码长,所以存在有其码长小于预定长度的压缩码。因此,通过额外的位被添加至压缩码的预定长度位串以及到包括解压缩字符数据的数据结构的关联指针来指示解压缩字符数据与压缩码之间的对应关系。不同位被添加至同一压缩码的预定长度位串与同一指针关联。在使用该算法的解压缩处理中,从压缩数据读出包括额外的位的预定长度位串,并且基于所读取的预定长度位来获取指针,以及基于所获取的指针来读出解压缩字符数据。此外,下一次从压缩数据读出预定长度位串的读出位置被设置成从上一次读出位置前进压缩码长度的位的位置。因此,基于用于根据出现的频率来分配压缩码与码长的压缩/解压缩算法,解压缩处理基于从压缩数据所读出的位而执行。在以上所描述的技术中,解压缩的字符串是根据从压缩数据所读取的位串获取的;因此,同一指针被冗余地存储在不同的位被添加至同一压缩码的位串中的每个位串中。专利文献专利文献1:日本公开专利公报第2010-93414号专利文献2:国际公布册第WO2008/142800号
技术实现思路
技术问题根据以上描述的技术,在解压缩处理中产生两个引用处理,即基于读取的位串对指针的引用以及基于指针对解压缩字符数据的引用。本专利技术的一个方面是减小解压缩处理的量。根据一个方面,一种使得计算机执行下述的存储程序:将要被压缩的字符数据存储在存储区域内的由多种类型的预定长度位串指定的相应的存储位置中,该多种类型的预定长度位串包括分配给字符数据的压缩码,在该存储区域中,存储位置由预定长度位串指定。根据一个方面,一种用于使得计算机执行下述的存储方法:将要被压缩的字符数据存储在存储区域内的由多种类型的预定长度位串指定的相应的存储位置中,该多种类型的预定长度位串包括分配给字符数据的压缩码,在该存储区域中,存储位置由预定长度位串指定。根据一个方面,一种存储装置包括:存储单元,该存储单元包括存储区域,在该存储区域中,存储位置由预定长度位串指定;以及控制单元,该控制单元将要被压缩的字符数据存储在存储区域内的由多种类型的预定长度位串指定的相应的存储位置中,该多种类型的预定长度位串包括分配给字符数据的压缩码。根据一个方面,一种使得计算机执行下述的解压缩程序:当在压缩文件中的读出位置从存储区域读出包括共有(common)压缩码的多种类型的预定长度位串时,从由所读取的预定长度位串指定的存储位置读出解压缩字符数据和码长,在该存储区域中,与压缩码相对应的解压缩字符数据和压缩码的码长被存储在由包括该压缩码的预定长度位串指定的相应的存储位置中;将从压缩文件所读出的预定长度位串转换成解压缩字符数据;以及基于码长来调节读出位置。根据一个方面,一种用于使得计算机执行下述的解压缩方法:当在压缩文件中的读出位置从存储区域读出包括共有压缩码的多种类型的预定长度位串时,从由所读取的预定长度位串指定的存储位置读出解压缩字符数据和码长,在该存储区域中,与压缩码相对应的解压缩字符数据和压缩码的码长被存储在由包括该压缩码的预定长度位串指定的相应的存储位置中;将从压缩文件所读出的预定长度位串转换成解压缩字符数据;以及基于码长来调节读出位置。根据一个方面,一种解压缩装置,包括:存储单元,该存储单元包括存储区域,在该存储区域中,与共有压缩码相对应的解压缩字符数据和压缩码的码长被存储在由包括该压缩码的多种类型的预定长度位串指定的相应的存储位置中;读出单元,该读出单元当在压缩文件中的读出位置读出包括压缩码的预定长度位串时,将解压缩字符数据和码长从由所读取的预定长度位串指定的存储位置读出到存储单元;转换单元,该转换单元将从压缩文件读出的预定长度位串转换成解压缩字符数据;以及调节单元,该调节单元基于码长对读出位置进行调节。专利技术的有益效果根据本专利技术的一个方面,可以减小解压缩处理的量。附图说明图1示出了哈夫曼树的示例。图2示出了数据结构之间的引用关系。图3示出了压缩/解压缩字典的数据结构的示例。图4示出了修改的哈夫曼树的示例。图5示出了压缩/解压缩字典的数据结构的示例。图6示出了压缩/解压缩字典的修改的数据结构的示例。图7示出了计算机1的功能块的配置示例。图8示出了计算机1的硬件配置示例。图9示出了计算机1的软件配置示例。图10示出了使用计算机1的系统的配置示例。图11示出了通过压缩单元101执行的压缩处理的流程的示例。图12示出了生成压缩/解压缩字典数据的处理的流程的示例。图13示出了频率制表表格T7的示例。图14示出了字符串列表T8的示例。图15示出了码长分布表格T9的示例。图16示出了转换处理的流程的示例。图17示出了通过解压缩单元102执行的解压缩处理的流程的示例。图18示出了转换处理的流程的示例。图19示出了通过检索单元103执行的检索处理的流程的示例。图20示出了压缩/解压缩字典数据T10的示例。图21示出了交叉检查处理的流程的示例。具体实施方式首先,说明使用哈夫曼编码的压缩/解压缩处理和修改示例。图1示出了哈夫曼树的示例。在图1中示出的哈夫曼树表示字符数据(0,>,<br>,1,<,a,s,t,x)与压缩码之间的对应关系。字符数据(0,>,<br>,1,<,a,s,t,x)仅是用于说明哈夫曼树的字符数据的示例。作为要被压缩的字符数据,例如,使用诸如数字、字母、平假名字符、片假名字符、汉字字符、阿拉伯字母、西里尔字母或符号(两字节或一字节)的字符码,包括多个字符的组合的字符串(保留字),以及固定长度位串等。在图1中示出的列表T1是根据在压缩目标数据中的出现的频率排序的要被压缩的字符数据的列表。此外,在要被压缩的字符数据中,通过进一步使用不同于列表T1的列表来管理其位长与字符码不本文档来自技高网
...

【技术保护点】
一种存储程序,所述存储程序使得计算机执行:将要被压缩的字符数据存储在存储区域内的由多种类型的预定长度位串指定的相应的存储位置中,所述多种类型的预定长度位串包括分配给所述字符数据的压缩码,在所述存储区域中,所述存储位置由所述预定长度位串指定。

【技术特征摘要】
【国外来华专利技术】1.一种存储方法,所述存储方法用于使得计算机执行:生成具有多个叶数据结构的哈夫曼树,所述叶数据结构的大小与目标数据中的要被压缩的字符数据所对应的最大压缩码长相关,所述多个叶数据结构按连续的位的单位形成,所述多个叶数据结构均包括固定长度数据和对应于所述固定长度数据的编码数据,并且当分配给第一字符数据的压缩码短于所述最大压缩码长时,将所述第一字符数据存储在所述哈夫曼树中的不止一个叶数据结构中,其中基于所述目标数据中的所述字符数据的出现频率来确定所述压缩码的长度,其中当所述出现频率是1/(2的n次幂)时,所述长度是n位。2.根据权利要求1所述的存储方法,其中分配给另外的要被压缩的字符数据的另外的压缩码的码长与分配给所述第一字符数据的压缩码的码长不同,并且所述压缩码的码长以与所述字符数据相关联的方式被存储。3.根据权利要求1所述的存储方法,其中所述不止一个固定长度数据在共有位位置中包括所述压缩码,并且不同之处在于除所述压缩码之外的冗余位串。4.根据权利要求1所述的存储方法,其中存在有与压缩码的数量一样多的不同类型的固定长度数据。5.根据权利要求1所述的存储方法,所述存储方法使得所述计算机还执行:当所述字符数据包括在要被压缩的文件中时,将在所述文件中的所述字符数据转换成所述压缩码。6.一种存储装置,包括:存储单元;以及控制单元,所述控制单元生成具有多个叶数据结构的哈夫曼树,所述叶数据结构的大小与目标数据中的要被压缩的字符数据所对应的最大压缩码长相关,所述多个叶数据结构按连续的位的单位形成,所述多个叶数据结构均包括固定长度数据和对应于所述固定长度数据的编码数据,并且当分配给第一字符数据的压缩码短于所述最大压缩码长时,将所述第一字符数据存储在所述哈夫曼树中的不止一个叶数据结构中,其中基于所述目标数据中的所述字符数据的出现频率来确定所述压缩码的长度,其中当所述出现频率是1/(2的n次幂)时,所述长度是n位。7.一种解压缩方法,所述解压缩方法用于使计算机执行:当从压缩文件中的读出位置读出均包括共有压缩码的不止一个固定长度数据中的固定长度数据时,从由所读取的固定长度数据指定的叶数据结构读出与所述压缩码对应的已根据哈夫曼编码被压缩的解压缩字符数据和所述压缩码的码长,所述解压缩字符数据是...

【专利技术属性】
技术研发人员:片冈正弘
申请(专利权)人:富士通株式会社
类型:发明
国别省市:日本;JP

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1