在输入区块扫描时维持分类符号列的硬件数据压缩器制造技术

技术编号:13771474 阅读:73 留言:0更新日期:2016-09-29 16:20
一种硬件数据压缩器,包括第一硬件引擎与第二硬件引擎。第一硬件引擎扫描字符输入区块,以产生标记串流,该标记串流包括指向该输入区块的匹配字符串与该输入区块的非替换字符的多个替换指针。第二硬件引擎接收该标记串流,并维持关联于该标记串流的这些标记的符号分类列。其中,该第二硬件引擎依据该第一硬件引擎产生该标记串流的频率,同步维持该符号分类列。

【技术实现步骤摘要】

本申请案主张申请日为2015年5月11日的美国专利第62/159,352号临时申请案的国际优先权。此优先权案的全文并入本案以供参考。
技术介绍
有效率的数据压缩已经成为计算机世界中一个重要需求。这主要是因为许多文件都是经过压缩后再透过网络传送,并在被接收后经过解压缩再为被接收端所利用。此种传输方式可以降低网络传送的文件大小,以节省传输时间以及网络带宽的使用。
技术实现思路
有鉴于此,本专利技术提供一种硬件数据压缩器,包括第一硬件引擎与第二硬件引擎。第一硬件引擎扫描字符输入区块,以产生标记串流,该标记串流包括指向该输入区块的匹配字符串与该输入区块的非替换字符的多个替换指针。第二硬件引擎接收该标记串流,并维持关联于该标记串流的这些标记的符号分类列。其中,该第二硬件引擎依据该第一硬件引擎产生该标记串流的频率,同步维持该符号分类列。本专利技术还提供一种利用硬件数据压缩器压缩字符输入区块的方法。首先,利用第一硬件引擎,扫描字符输入区块以产生标记串流,该标记串流包括指向该输入区块的匹配字符串与该输入区块的非替换字符的多个替换指针。随后,利用第二硬件引擎接收该标记串流,并维持关联于该标记串流的这些标记的符号分类列。接下来,利用该第二硬件引擎,依据该第一硬件引擎产生该标记串流的频率,同步维持该符号分类列。本专利技术还提供一种编码于至少非瞬时计算机可使用媒体以供计算机装置使用的计算机程序产品。此计算机程序产品包括内含于该媒体的计算机可使用程序代码,用以描述硬件数据压缩器。此计算机可使用程序代码包括第一程序代码与第二程序代码。第一程序代码用以描述第一硬件引擎,扫描字符输入区块以产生标记串流,该标记串流包括指向该输入区块的匹配字符串与该输入区块的非替换字符的多个替换指针。第二程序代码用以描述第二硬件引擎,接收该标记串流,并维持关联于该标记串流的这些标记的符号分类列。其中,该第一硬件引擎产生该标记串流,而该第二硬件引擎同步维持该符号分类列。本专利技术所采用的具体实施例,将通过以下的实施例及图式作进一步的说明。附图说明图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 format specification version 1.3)所定义的无损(lossless)压缩数据格式,输入文件的各个块同时使用LZ型算法(例如LZ77)与霍夫曼(Huffman)编码进行压缩演算。此技术可参照Ziv J.,Lempel A.,“A Universal Algorithm for Sequential Data Compression,”IEEE Transactions on Information Theory,Vol.23,No.3,pp.337-343;以及Huffman,D.A.,“A Method for the Construction of 本文档来自技高网...

【技术保护点】
一种硬件数据压缩器,其特征在于,包括:第一硬件引擎,扫描字符输入区块,以产生标记串流,该标记串流包括指向该输入区块的匹配字符串与该输入区块的非替换字符的多个替换指针:第二硬件引擎,接收该标记串流,并维持关联于该标记串流的这些标记的符号分类列;其中,该第二硬件引擎依据该第一硬件引擎产生该标记串流的频率,同步维持该符号分类列。

【技术特征摘要】
2015.05.11 US 62/159,352;2015.10.14 US 14/882,9631.一种硬件数据压缩器,其特征在于,包括:第一硬件引擎,扫描字符输入区块,以产生标记串流,该标记串流包括指向该输入区块的匹配字符串与该输入区块的非替换字符的多个替换指针:第二硬件引擎,接收该标记串流,并维持关联于该标记串流的这些标记的符号分类列;其中,该第二硬件引擎依据该第一硬件引擎产生该标记串流的频率,同步维持该符号分类列。2.根据权利要求1所述的硬件数据压缩器,其特征在于,为了维持该分类列,该第二硬件引擎:(a)递增关联于该第一硬件引擎接收的该串流的标记的第一符号的第一频率;以及(b)当该第一频率高于位于该第一符号正上方的第二符号的第二频率时,重复互换该分类列中该第一符号与该第二符号的位置。3.根据权利要求2所述的硬件数据压缩器,其特征在于,该第二硬件引擎:当该第一硬件引擎扫描该字符输入区块以产生该串流的下一个标记时,执行步骤(a)与(b)。4.根据权利要求3所述的硬件数据压缩器,其特征在于,为了维持该分类列,该第二硬件引擎还:(c)当该第一频率等于该第二频率且该第一符号在词汇上少于该第二符号时,重复互换该分类列中该第一符号与该第二符号的位置。5.根据权利要求4所述的硬件数据压缩器,其特征在于,为了维持该分类列,该第二硬件引擎还:(d)对各个关联于该标记的符号,重复步骤(a)至(c)。6.根据权利要求5所述的硬件数据压缩器,其特征在于,为了维持该分类列,该第二硬件引擎还:对该标记串流的各个标记,重复步骤(a)至(d)。7.根据权利要求6所述的硬件数据压缩器,其特征在于,为了维持该分类列,该第二硬件引擎还:在该第一符号第一次出现于所产生的该标记串流时,将该第一符号插入该分类列的底部。8.根据权利要求2所述的硬件数据压缩器,其特征在于,还包括:频率表,对应于各个符号分别具有项目,该频率表以符号值作为索引,并且,该频率表的各个项目装载该符号出现的频率;该分类列的各个项目装载该符号值;以及若是该分类列的该项目所装载的该符号值出现于该频率表的索引中,该频率表的该项目并将索引装载于该分类列的该项目。9.根据权利要求8所述的硬件数据压缩器,其特征在于,为了互换该分类列中该第一符号与该第二符号的位置,该第二硬件引擎还:互换该第一符号与该第二符号在该分类列中对应的该二个项目所装载的符号值。10.根据权利要求9所述的硬件数据压缩器,其特征在于,为了互换该分类列中该第一符号与该第二符号的位置,该第二硬件引擎还:递减该频率表中,对应于该第一符号的该项目的该索引;以及递增该频率表中,对应于该第二符号的该项目的该索引。11.根据权利要求1所述的硬件数据压缩器,其特征在于,还包括:第三硬件引擎,使用该符号分类列,建构霍夫曼(Hoffman)编码表。12.根据权利要求11所述的硬件数据压缩器,其特征在于,还包括:当该第二硬件引擎改变该分类列并且在该第一硬件引擎完成该输入区块的扫描前,该第三硬件引擎开始利用该符号分类列建构该霍夫曼编码表。13.根据权利要求12所述的硬件数据压缩器,其特征在于,还包括:第四硬件引擎,使用该第三硬件引擎,因应该分类列最后一次改变,最后一次建构的该霍夫曼编码表,对该标记串流进行霍夫曼编码;若是该第三硬件引擎是在该分类列最后一次改变后才开始该霍夫曼编码表的该最后一次建构,并在完成该输入区块的扫描前完成该霍夫曼编码表的该最后一次建构,该第四硬件引擎于完成该输入区块的扫描时,开始对该标记串流进行霍夫曼编码;否则,该第四硬件引擎于完成该霍夫曼编码表的该最后一次建构时,开始对该标记串流进行霍夫曼编码。14.一种利用硬件数据压缩器压缩字符输入区块的...

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

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

1