数据压缩的系统和方法

文档序号:9791032阅读:638来源:国知局
数据压缩的系统和方法【
技术领域
】[0001]本发明设及通信领域,并且更具体的,设及通信领域中的数据压缩的系统和方法。【
背景技术
】[0002]随着数据量和数据产生速度的不断增长,数据的存储与分析对数据压缩提出了更高的性能需求。一方面,数据压缩能够显著减小数据在磁盘的存储空间,另一方面,数据压缩能够降低数据在网络及数据分析系统中传输的带宽需求。[0003]在众多的数据压缩算法中,LZ77提供了一种基于字典籍的无损数据压缩算法,并已成为大多数LZ算法变体如LZW,LZSS等W及一些其他压缩算法的基础。对于已经出现过的字节串,LZ77使用一个指向其匹配字节串的"距离-长度"对代替重复出现的内容。距离是指当前压缩字节串与历史匹配字节串之间的地址偏移量,长度是两个字节串的匹配长度。LZ77算法基于"滑动窗口"压缩,滑动窗口包含两部分,一部分是输入的待压缩字节串,另一部分是刚压缩过的字节串作为字典籍。LZ77算法被多种压缩格式采用,例如,在数据库系统中常用的ZliKGzip等压缩格式,也被应用于超文本传输协议化yperTextTransferProtocol,HTTP)、可移植网络图形格式(Portable化tworkGraphicFormat,PNG)图像、Adobe便携式文档格式(PortableDo州ment,PDF')等。[0004]但是,目前的压缩速度还是难W满足数据量和数据产生速度不断增长的需求。【
发明内容】[0005]本发明实施例提供了一种数据压缩的系统和方法,能够灵活的实现大数据的快速压缩。[0006]第一方面,提供了一种数据压缩的系统,包括:预处理模块,用于获取N个数据块中的每个数据块的压缩信息,其中,N为大于1的正整数;管理模块,用于根据所述预处理模块获取的所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度;压缩模块,用于根据所述资源分配信息,生成N个压缩处理器,其中,所述N个压缩处理器中的第i个压缩处理器具有所述N个目标并行度中的第i个目标并行度,且所述第i个压缩处理器用于压缩与所述第i个目标并行度对应的数据块,i的取值范围为1至N。[0007]本发明实施例中的数据块具有相同的数据类型,因此具有相对一致的压缩信息,可W使用每个数据块中一小部分采样数据的压缩信息代表整个数据块的压缩信息。该压缩信息例如为软件压缩速度、压缩比、数据块大小和数据块的压缩时间等参数。[000引本发明实施例能够对具有不同压缩信息的待压缩数据块动态调整压缩处理器的并行度,使得压缩模块生成的多个压缩处理器的并行度在满足系统压缩速度的情况下进一步的提高系统的能效水平,因而本发明实施例可W灵活、快速的实现数据的压缩。[0009]结合第一方面,在第一方面的第一种实现方式中,所述管理模块还用于根据所述每个数据块的压缩信息和可利用硬件信息,确定所述资源分配信息,所述资源分配信息还包括生成所述N个压缩处理器需要的次数和每次生成的压缩处理器的数量。可利用硬件信息可W为压缩模块能够组成的压缩处理器的数量和每个压缩处理器的并行度。[0010]结合第一方面,在第一方面的第二种实现方式中,所述预处理模块具体用于:获取所述N个数据块中的第i个数据块的子数据块;对所述第i个数据块的子数据块进行软件压缩,获取所述第i个数据块的子数据块的压缩信息,将所述第i个数据块的子数据块的压缩信息作为所述第i个数据块的压缩信息。运样,预处理模块能够快速的获得每个数据块的压缩信息。[0011]结合第一方面,在第一方面的第=种实现方式中,所述压缩信息包括第一压缩速度,所述管理模块具体用于:根据第一压缩速度、并行度与加速比的函数关系,确定与所述第i个数据块的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i个数据块对应的目标并行度。[0012]结合第一方面,在第一方面的第四种实现方式中,所述压缩信息包括第一压缩速度,所述管理模块具体用于:根据第一压缩速度、并行度与加速比的函数关系和用户需求,确定与所述第i个数据块对应的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i数据块对应的目标并行度,所述用户需求包括系统压缩速度或能效水平。[0013]结合第一方面,在第一方面的第五种实现方式中,在所述压缩模块压缩所述N个数据块之后,所述压缩模块还用于:获取所述第i个压缩处理器压缩所述第i个数据块的第二压缩速度;所述管理模块还用于:计算所述第i个数据块的第二压缩速度和所述第i个数据块的第一压缩速度的比值;根据所述比值修正所述第i个数据块对应的所述最优加速比。[0014]运样,通过修正预先存储的上述函数关系,可W使管理模块更加准确预测不同并行度对应的加速比,进而确定出更加满足需求的压缩处理器的并行度。[0015]结合第一方面,在第一方面的第六种实现方式中,在所述管理模块确定所述资源分配信息之前,所述管理模块还用于:接收所述压缩模块发送的所述可利用硬件信息。[0016]运样,当可利用硬件资源的数量或参数发生改变时,压缩模块可W重新向管理模块发送改变后的可利用硬件信息。[0017]第二方面,提供了一种数据压缩的方法,包括获取N个数据块中的每个数据块的压缩信息,其中,N为大于1的正整数;根据所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度;根据所述资源分配信息,生成N个压缩处理器,其中,所述N个压缩处理器中的第i个压缩处理器具有所述N个目标并行度中的第i个目标并行度,且所述第i个压缩处理器用于压缩与所述第i个目标并行度对应的数据块,i的取值范围为1至N。[0018]本发明实施例能够对具有不同压缩信息的待压缩数据块动态调整压缩处理器的并行度,使得压缩模块生成的多个压缩处理器的并行度在满足系统压缩速度的情况下进一步的提高系统的能效水平,因而本发明实施例可W灵活、快速的实现数据的压缩。[0019]第二方面的方法的各个步骤还可W参照第一方面的系统的相应模块的各个操作,在此不再重复。[0020]第=方面,提供了一种数据压缩的系统,该系统包括处理器、协处理器、存储器、收发器和总线系统。其中,该处理器、该协处理器、该收发器和该存储器通过该总线系统相连,该存储器用于存储指令,该处理器和该协处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的系统的操作。[0021]第四方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的指令。【附图说明】[0022]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据运些附图获得其他的附图。[0023]图1是根据本发明实施例的数据压缩的系统的示意性框图。[0024]图2是根据本发明实施例的数据压缩的系统的一个具体实施例的框图。[0025]图3是根据本发明实施例的数据压缩的系统的一个压缩处理器的示意性框图。[0026]图4是根据本发明实施例的另一数据压缩的系统的示意性框图。[0027]图5是根据本发明实施例的数据压缩的方法的示意性流程图。【具体实施方式】[0028]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例当前第1页1 2 3 4 
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1