硬件数据压缩器、硬件数据压缩方法及计算机程序产品技术

技术编号:13837608 阅读:57 留言:0更新日期:2016-10-15 23:27
一种硬件数据压缩器,包括硬件引擎,用以于扫描待压缩字符输入区块时,维持第一与第二散列表。第一散列表以输入区块内N个字符的散列作为其索引,第二散列表以输入区块内M个字符的散列作为其索引,M是一个大于二的整数,N是一个大于M的整数。第一散列表用于搜寻输入区块内位于当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少N个字符的匹配。当使用第一散列表未能找到匹配时,使用第二散列表搜寻输入区块内位于当前搜寻目标位置后方的字符,以寻找位于当前搜寻目标位置的至少M个字符的匹配。

【技术实现步骤摘要】

本申请案主张申请日为2015年5月11日的美国专利第62/159,352号临时申请案的国际优先权。此优先权案的全文并入本案以供参考。
技术介绍
有效率的数据压缩已经成为计算机世界中一个重要需求。这主要是因为许多文件都是经过压缩后再透过网络传送,并在被接收后经过解压缩再为被接收端所利用。此种传输方式可以降低网络传送的文件大小,以节省传输时间以及网络带宽的使用。
技术实现思路
有鉴于此,本专利技术提供一种硬件数据压缩器,包括硬件引擎,用以于扫描待压缩字符输入区块时,维持第一与第二散列表。其中,第一散列表以输入区块内N个字符的散列作为其索引,第二散列表以输入区块内M个字符的散列作为其索引,M是一个大于二的整数,N是一个大于M的整数。其中,第一散列表用于搜寻输入区块内位于当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少N个字符的匹配。其中,当使用第一散列表未能找到位于当前搜寻目标位置的至少N个字符的匹配时,使用第二散列表搜寻输入区块内位于当前搜寻目标位置后方的字符,以寻找位于当前搜寻目标位置的至少M个字符的匹配。本专利技术还提供一种方法。首先,利用硬件引擎,于扫描待压缩字符输入区块时,维持第一与第二散列表。其中,第一散列表以输入区块内N个字符的散列作为其索引,第二散列表以输入区块内M个字符的散列作为其索引,并且,
M是一个大于二的整数,N是一个大于M的整数。接下来,使用第一散列表搜寻输入区块内位于当前搜寻目标位置后方的字符,以寻找位于当前搜寻目标位置的至少N个字符的匹配。其中,当使用第一散列表未能找到位于当前搜寻目标位置的至少N个字符的匹配时,使用第二散列表搜寻该输入区块内位于当前搜寻目标位置后方的字符,以寻找位于当前搜寻目标位置的至少M个字符的匹配。本专利技术还提供一种编码于至少非瞬时计算机可使用媒体以供计算机装置使用的计算机程序产品。此计算机程序产品包括内含于该媒体的计算机可使用程序代码,用以描述硬件数据压缩器。此计算机可使用程序代码包括第一程序代码,描述硬件引擎,用以于扫描待压缩字符输入区块时,维持第一与第二散列表。其中,第一散列表以输入区块内N个字符的散列作为其索引,第二散列表以输入区块内M个字符的散列作为其索引,M是一个大于二的整数,N是一个大于M的整数。其中,第一散列表用于搜寻输入区块内位于当前搜寻目标位置后方的字符,以寻找位于当前搜寻目标位置的至少N个字符的匹配。当使用第一散列表未能找到位于当前搜寻目标位置的至少N个字符的匹配时,使用第二散列表搜寻输入区块内位于当前搜寻目标位置后方的字符,以寻找位于当前搜寻目标位置的至少M个字符的匹配。本专利技术所采用的具体实施例,将通过以下的实施例及图式作进一步的说明。附图说明图1为硬件数据压缩器的方块示意图。图2A为方块示意图,显示图1的硬件数据压缩器的一部分。图2B为时序图,显示图2A的LZ77引擎与分类引擎的处理程序。图3为流程图,显示图2A的LZ77引擎与分类引擎的处理程序。图4为方块图,显示供图1的分类引擎使用的频率表、分类列与尾端指针。图5为流程图,显示图1的分类引擎依据图3的实施例进行的处理程序。图6为方块图,显示图4中被分类引擎更新的频率表、分类列与尾端指针。图7为方块图,显示图6中被分类引擎更新的频率表、分类列与尾端指针。图8为方块图,显示图7中被分类引擎更新的频率表、分类列与尾端指针。图9为时序图,以图形显示传统DEFLATE类型输入区块压缩所费时间的各个部分。图10为时序图,以图形显示同步符号列分类的实施例的DEFLATE类型输入区块压缩所费时间的各个部分。图11A为方块图,显示本专利技术另一实施例的分类列。图11B为方块图,显示本专利技术另一实施例的频率表。图12为方块图,显示图1的硬件数据压缩器的另一实施例。图13为时序图,以图形显示依据本专利技术另一实施例进行压缩所费时间的各个部分。图14A为流程图,显示图1的LZ77引擎配合动态初期霍夫曼编码执行数据压缩的处理程序。图14B为流程图,显示图1的霍夫曼编码表建构引擎配合动态初期霍夫曼编码执行数据压缩的运作。图14C为流程图,显示图1的霍夫曼编码引擎配合动态初期霍夫曼编码执行数据压缩的运作。图15为时序图,以图形显示传统上对DEFLATE型输入区块进行压缩所费时间的各个部分。图16为时序图,以图形显示依据本专利技术的动态初期霍夫曼编码表对
DEFLATE型输入区块进行压缩所费时间的各个部分。图17A为流程图,显示硬件数据压缩器建构动态初期霍夫曼编码表的运作的一实施例。图17B为流程图,显示硬件数据压缩器建构动态初期霍夫曼编码表的运作的一实施例。图17C为流程图,显示硬件数据压缩器建构动态初期霍夫曼编码表的运作的一实施例。图18为方块图,显示图1的硬件数据压缩器的硬件的一实施例。图19为流程图,显示分类引擎通知建构霍夫曼编码表的处理程序。图20为时序图,以图形显示本专利技术对DEFLATE型输入区块进行压缩所费时间的各个部分的另一实施例。图21为方块图,显示图1的硬件数据压缩器的一部分。图22为流程图,显示硬件数据压缩器压缩数据的处理程序。图23A为流程图,显示图22的步骤的一实施例。图23B为流程图,显示图22的步骤的另一实施例。图24为方块图,显示图1的LZ77引擎的一部分。图25为流程图,显示图24的LZ77引擎的运作。图26为方块图,显示本专利技术硬件数据压缩器的一实施例。图27为方块图,显示图26的散列链的节点。图28为流程图,显示硬件数据压缩器利用动态节点机率的实施方式,执行图26所示于散列表中插入新节点显示的运作。图29为时序图,显示图26的硬件数据压缩器依据图28的流程执行的运作。图30为流程图,显示图26的硬件数据压缩器依据动态节点机率的实施例
分类散列链的运作。图31为时序图,例示硬件数据压缩器依据图26至图30执行的运作。图32为流程图,显示产生图33所示的查找表的方法,此查找表用于静态散列链节点机率的实施例。图33为用于静态散列链节点机率实施例的查找表。图34为流程图,显示图26的硬件数据压缩器依据静态节点机率的实施例分类散列链的运作。图35为时序图,例示图26的硬件数据压缩器依据图34执行的运作。图36为方块图,显示本专利技术硬件数据压缩器的另一实施例。图37为流程图,显示图36的硬件数据压缩器的运作。图38为时序图,显示图36的硬件数据压缩器依据图37的方法执行的运作。图39为方块图,显示图1的LZ77引擎的一部分。图40为流程图,显示图39的LZ77引擎的运作。图41为方块图,详细显示图39的散列索引产生器。图42为方块图,显示包含如图1所示的硬件数据压缩器100的系统。图43为方块图,显示包含硬件数据压缩器的系统的另一实施例。具体实施方式常见的文件压缩程序,如gzip与zlib,是将输入文件压缩,以期能产生较小的输出文件。此输出文件具有设定格式,使文件解压缩程序(例如gzip与zlib)可以将其解压缩并产生与原本输入文件相同的解压缩文件。压缩文件包含一系列的块(block),对应至输入文件的连续数据块。此压缩文件的各个块的格式符合RFC1951规范,DEFLATE压缩数据格式规范版本1.3(DEFLATE compressed data fo本文档来自技高网
...

【技术保护点】
一种硬件数据压缩器,其特征在于,包括:硬件引擎,用以于扫描待压缩字符输入区块时,维持第一与第二散列表;其中,该第一散列表以该输入区块内N个字符的散列作为其索引,该第二散列表以该输入区块内M个字符的散列作为其索引,M是一个大于二的整数,N是一个大于M的整数;其中,该第一散列表用于搜寻该输入区块内位于当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少N个字符的匹配;其中,当使用该第一散列表未能找到位于该当前搜寻目标位置的该至少N个字符的匹配时,使用该第二散列表搜寻该输入区块内位于该当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少M个字符的匹配。

【技术特征摘要】
2015.05.11 US 62/159,352;2015.10.14 US 14/883,0681.一种硬件数据压缩器,其特征在于,包括:硬件引擎,用以于扫描待压缩字符输入区块时,维持第一与第二散列表;其中,该第一散列表以该输入区块内N个字符的散列作为其索引,该第二散列表以该输入区块内M个字符的散列作为其索引,M是一个大于二的整数,N是一个大于M的整数;其中,该第一散列表用于搜寻该输入区块内位于当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少N个字符的匹配;其中,当使用该第一散列表未能找到位于该当前搜寻目标位置的该至少N个字符的匹配时,使用该第二散列表搜寻该输入区块内位于该当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少M个字符的匹配。2.根据权利要求1所述的硬件数据压缩器,其特征在于,为了维持该第一与该第二散列表,对于扫描该输入区块的各个搜寻目标位置,该硬件引擎为:对位于该搜寻目标位置的该输入区块的N个字符进行散列处理,以产生用于该第一散列表的第一索引;将第一节点插入位于该第一索引的该第一散列表,该第一节点包括指针指向该搜寻目标位置;对位于该搜寻目标位置的该输入区块的M个字符进行散列处理,以产生用于该第二散列表的第二索引;以及将第二节点插入位于该第二索引的该第二散列表,该第二节点包括指针指向该搜寻目标位置。3.根据权利要求2所述的硬件数据压缩器,其特征在于,为了使用该第一散列表搜寻该输入区块内位于该当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少N个字符的匹配,该硬件引擎于该输入区块中位于该
\t第一索引的该第一散列表的节点的指针所指向的位置,搜寻该匹配;并且,为了使用该第二散列表搜寻该输入区块内位于该当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少M个字符的匹配,该硬件引擎于该输入区块中位于该第二索引的该第二散列表的节点的指针所指向的位置,搜寻该匹配。4.根据权利要求1所述的硬件数据压缩器,其特征在于,为了扫描该输入区块,若是找到位于该当前搜寻目标位置的该至少N个字符的匹配,该硬件引擎以N个字符为单位,递增该当前搜寻目标位置,若是找到位于该当前搜寻目标位置的该至少M个字符的匹配,该硬件引擎以M个字符为单位,递增该当前搜寻目标位置。5.根据权利要求1所述的硬件数据压缩器,其特征在于,M是3。6.根据权利要求5所述的硬件数据压缩器,其特征在于,N是4。7.一种方法,其特征在于,包括:利用硬件引擎,于扫描待压缩字符输入区块时:维持第一与第二散列表;其中,该第一散列表以该输入区块内N个字符的散列作为其索引,该第二散列表以该输入区块内M个字符的散列作为其索引,并且,M是一个大于二的整数,N是一个大于M的整数;以及使用该第一散列表搜寻该输入区块内位于当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少N个字符的匹配;其中,当使用该第一散列表未能找到位于该当前搜寻目标位置的该至少N个字符的匹配时,使用该第二散列表搜寻该输入区块内位于该当前搜寻目标位置后方的字符,以寻找位于该当前搜寻目标位置的至少M个字符的匹配。8.根据权利要求7所述的方法,其特征在于,维持该第一与该第二散列表的步骤包括:对于扫描该输入区块的各个搜寻目标位置:对位于该搜寻目标位置的该输入区块的N个字符进行散列处理,以产生用于该第一散列表的第一索引;将第一节点插入位于该第一索引的该第一散列表,该第一节点包括指针指向该搜寻目标位置;对位于该搜寻目标位置的该输入区块的M个字符进行散列处理,以产生用于该第二散列表的第二索引;以及将第二节点插入位于该...

【专利技术属性】
技术研发人员:G·葛兰·亨利泰瑞·派克斯
申请(专利权)人:上海兆芯集成电路有限公司
类型:发明
国别省市:上海;31

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

1