CN105553937B - 数据压缩的***和方法 - Google Patents
数据压缩的***和方法 Download PDFInfo
- Publication number
- CN105553937B CN105553937B CN201510885524.8A CN201510885524A CN105553937B CN 105553937 B CN105553937 B CN 105553937B CN 201510885524 A CN201510885524 A CN 201510885524A CN 105553937 B CN105553937 B CN 105553937B
- Authority
- CN
- China
- Prior art keywords
- compression
- data block
- speed
- information
- ratio
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000013144 data compression Methods 0.000 title claims abstract description 24
- 230000006835 compression Effects 0.000 claims abstract description 282
- 238000007906 compression Methods 0.000 claims abstract description 251
- 238000007726 management method Methods 0.000 claims abstract description 45
- 238000013468 resource allocation Methods 0.000 claims abstract description 34
- 238000007781 pre-processing Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明实施例提供了一种数据压缩的***和方法,该***包括:预处理模块,用于获取N个数据块中的每个数据块的压缩信息;管理模块,用于根据所述预处理模块获取的所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度;压缩模块,用于根据所述资源分配信息,生成N个压缩处理器。本发明实施例能够对具有不同压缩信息的待压缩数据块动态调整压缩处理器的并行度,使得压缩模块生成的多个压缩处理器的并行度在满足***压缩速度的情况下进一步的提高***的能效水平,因而本发明实施例可以灵活、快速的实现数据的压缩。
Description
技术领域
本发明涉及通信领域,并且更具体的,涉及通信领域中的数据压缩的***和方法。
背景技术
随着数据量和数据产生速度的不断增长,数据的存储与分析对数据压缩提出了更高的性能需求。一方面,数据压缩能够显著减小数据在磁盘的存储空间,另一方面,数据压缩能够降低数据在网络及数据分析***中传输的带宽需求。
在众多的数据压缩算法中,LZ77提供了一种基于字典籍的无损数据压缩算法,并已成为大多数LZ算法变体如LZW,LZSS等以及一些其他压缩算法的基础。对于已经出现过的字节串,LZ77使用一个指向其匹配字节串的“距离-长度”对代替重复出现的内容。距离是指当前压缩字节串与历史匹配字节串之间的地址偏移量,长度是两个字节串的匹配长度。LZ77算法基于“滑动窗口”压缩,滑动窗口包含两部分,一部分是输入的待压缩字节串,另一部分是刚压缩过的字节串作为字典籍。LZ77算法被多种压缩格式采用,例如,在数据库***中常用的Zlib、Gzip等压缩格式,也被应用于超文本传输协议(Hyper Text TransferProtocol,HTTP)、可移植网络图形格式(Portable Network Graphic Format,PNG)图像、Adobe便携式文档格式(Portable Document Format,PDF)等。
但是,目前的压缩速度还是难以满足数据量和数据产生速度不断增长的需求。
发明内容
本发明实施例提供了一种数据压缩的***和方法,能够灵活的实现大数据的快速压缩。
第一方面,提供了一种数据压缩的***,包括:预处理模块,用于获取N个数据块中的每个数据块的压缩信息,其中,N为大于1的正整数;管理模块,用于根据所述预处理模块获取的所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度;压缩模块,用于根据所述资源分配信息,生成N个压缩处理器,其中,所述N个压缩处理器中的第i个压缩处理器具有所述N个目标并行度中的第i个目标并行度,且所述第i个压缩处理器用于压缩与所述第i个目标并行度对应的数据块,i的取值范围为1至N。
本发明实施例中的数据块具有相同的数据类型,因此具有相对一致的压缩信息,可以使用每个数据块中一小部分采样数据的压缩信息代表整个数据块的压缩信息。该压缩信息例如为软件压缩速度、压缩比、数据块大小和数据块的压缩时间等参数。
本发明实施例能够对具有不同压缩信息的待压缩数据块动态调整压缩处理器的并行度,使得压缩模块生成的多个压缩处理器的并行度在满足***压缩速度的情况下进一步的提高***的能效水平,因而本发明实施例可以灵活、快速的实现数据的压缩。
结合第一方面,在第一方面的第一种实现方式中,所述管理模块还用于根据所述每个数据块的压缩信息和可利用硬件信息,确定所述资源分配信息,所述资源分配信息还包括生成所述N个压缩处理器需要的次数和每次生成的压缩处理器的数量。可利用硬件信息可以为压缩模块能够组成的压缩处理器的数量和每个压缩处理器的并行度。
结合第一方面,在第一方面的第二种实现方式中,所述预处理模块具体用于:获取所述N个数据块中的第i个数据块的子数据块;对所述第i个数据块的子数据块进行软件压缩,获取所述第i个数据块的子数据块的压缩信息,将所述第i个数据块的子数据块的压缩信息作为所述第i个数据块的压缩信息。这样,预处理模块能够快速的获得每个数据块的压缩信息。
结合第一方面,在第一方面的第三种实现方式中,所述压缩信息包括第一压缩速度,所述管理模块具体用于:根据第一压缩速度、并行度与加速比的函数关系,确定与所述第i个数据块的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i个数据块对应的目标并行度。
结合第一方面,在第一方面的第四种实现方式中,所述压缩信息包括第一压缩速度,所述管理模块具体用于:根据第一压缩速度、并行度与加速比的函数关系和用户需求,确定与所述第i个数据块对应的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i数据块对应的目标并行度,所述用户需求包括***压缩速度或能效水平。
结合第一方面,在第一方面的第五种实现方式中,在所述压缩模块压缩所述N个数据块之后,所述压缩模块还用于:获取所述第i个压缩处理器压缩所述第i个数据块的第二压缩速度;所述管理模块还用于:计算所述第i个数据块的第二压缩速度和所述第i个数据块的第一压缩速度的比值;根据所述比值修正所述第i个数据块对应的所述最优加速比。
这样,通过修正预先存储的上述函数关系,可以使管理模块更加准确预测不同并行度对应的加速比,进而确定出更加满足需求的压缩处理器的并行度。
结合第一方面,在第一方面的第六种实现方式中,在所述管理模块确定所述资源分配信息之前,所述管理模块还用于:接收所述压缩模块发送的所述可利用硬件信息。
这样,当可利用硬件资源的数量或参数发生改变时,压缩模块可以重新向管理模块发送改变后的可利用硬件信息。
第二方面,提供了一种数据压缩的方法,包括获取N个数据块中的每个数据块的压缩信息,其中,N为大于1的正整数;根据所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度;根据所述资源分配信息,生成N个压缩处理器,其中,所述N个压缩处理器中的第i个压缩处理器具有所述N个目标并行度中的第i个目标并行度,且所述第i个压缩处理器用于压缩与所述第i个目标并行度对应的数据块,i的取值范围为1至N。
本发明实施例能够对具有不同压缩信息的待压缩数据块动态调整压缩处理器的并行度,使得压缩模块生成的多个压缩处理器的并行度在满足***压缩速度的情况下进一步的提高***的能效水平,因而本发明实施例可以灵活、快速的实现数据的压缩。
第二方面的方法的各个步骤还可以参照第一方面的***的相应模块的各个操作,在此不再重复。
第三方面,提供了一种数据压缩的***,该***包括处理器、协处理器、存储器、收发器和总线***。其中,该处理器、该协处理器、该收发器和该存储器通过该总线***相连,该存储器用于存储指令,该处理器和该协处理器用于执行该存储器存储的指令,并且当该处理器执行该存储器存储的指令时,该执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的***的操作。
第四方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的指令。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的数据压缩的***的示意性框图。
图2是根据本发明实施例的数据压缩的***的一个具体实施例的框图。
图3是根据本发明实施例的数据压缩的***的一个压缩处理器的示意性框图。
图4是根据本发明实施例的另一数据压缩的***的示意性框图。
图5是根据本发明实施例的数据压缩的方法的示意性流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是本发明实施例的数据压缩的***100的示意性框图。如图1所示,该***100包括预处理模块110、管理模块120和压缩模块130。
具体的,图2所示,预处理模块110用于获取N个数据块中的每个数据块的压缩信息,N为大于1的正整数。该预处理模块110可以包括至少一个预压缩模块,每个预压缩模块分别可以对一个数据块进行软件压缩,并获取该数据块的压缩信息。
本发明实施例中,***100输入一个或多个数据块,每一个数据块的数据属于一列,因此一个数据块中的数据类型一致,可以具有一致的压缩特性。
可选的,每个预压缩模块可以获取其接收的数据块的一个子数据块,该子数据块可以为上述数据块的很小的一部分数据,例如可以为32KB。应注意,子数据块至少应该大于或等于一个软件压缩中的窗口尺寸。本发明实施例中,可以采用多种软件压缩算法对子数据块进行预压缩,例如LZ系列压缩算法,本发明对此不作限制,都属于本发明保护的范围。下面具体以LZ77软件压缩算法为例进行说明。
LZ77软件压缩时,需要顺序比较字典籍中的多个匹配节点。一般可以通过限制比较节点的数量,来减少匹配查找的时间。例如,如果当前匹配长度已经大于或等于8个字节,待匹配的节点的数量可以为未匹配的节点的数量的一半。如果当前匹配长度已经大于或等于128个字节,当前匹配被认定为最佳匹配,不再完成对剩余节点的匹配。
经过软件压缩,例如zlib压缩,可以获得每个子数据块的压缩信息,例如该子数据块的软件压缩速度、压缩比等特征参数。当数据被分为若干数据块,可以认为每一个数据块的数据类型一致,即该子数据块的压缩信息与该数据块的压缩信息相同。同时,每个预压缩模块还可以获取数据块的大小、数据块的压缩时间等特征参数。这样,预压缩模块可以确定每个数据块的压缩信息,该压缩信息包含但不限于以下参数:数据块大小、软件压缩时间、软件压缩速度和压缩比等。
预处理模块110向管理模块120发送上述N个数据块和每个数据块的压缩信息。
管理模块120,用于根据预处理模块110获取的上述N个数据块中的每个数据块的压缩信息,确定资源分配信息,该资源分配信息包括与上述N个数据块一一对应的N个目标并行度,即N个数据块中的第i个数据块对应的目标并行度为Mi,目标并行度为Mi的待生成压缩处理器用于压缩第i个数据块。其中Mi为正整数,i的取值范围为1至N。
例如,当采用软件LZ77算法顺序比较每个匹配节点时,软件压缩速度快表示只需要比较很少的节点就可以找到满意的匹配结果,例如只需要比较1次或者2次,这时候可以采用低并行度的压缩处理器。例如当软件预压缩只需要1次比较时,可以确定并行度为1,当软件预压缩只需要2次比较时,可以确定并行度为2。这样能够在压缩速度满足需求的情况下,避免浪费硬件资源,进一步节省***功耗。当软件压缩速度慢时表示需要比较多次才能找到满意的匹配结果,这时候高并行度的压缩处理器能够显著的提升压缩速度。
具体的,管理模块120可以对数据规模大、压缩比大、压缩速度慢或者压缩时间长的数据块可以分配更多的硬件资源,配置高并行度的压缩处理器,这样能够获得更高的加速收益。
可选的,作为一例,当压缩信息包括第一压缩速度时,管理模块120可以根据第一压缩速度、并行度与加速比的函数关系,确定第i个数据块对应的第一压缩速度对应的最优加速比,将与该最优加速比对应的并行度作为与第i个数据块对应的目标并行度,即确定该最优加速比对应的并行度为第i个数据块对应的待生成压缩处理器的目标并行度Mi。
该第一压缩速度为预压缩模块获取的数据块的软件压缩速度。本发明实施例中,加速比为数据块的硬件压缩速度与软件压缩速度的比值。
具体的,在该函数关系中压缩信息和并行度为自变量,加速比为因变量。该函数关系可以具体表现为表格或者拟合曲线。
应注意,本发明实施例中,还可以根据软件压缩速度、并行度与上述硬件压缩速度之间的函数关系,确定目标并行度Mi。本发明对此不作限制,都属于本发明的技术构思,均落在本发明的保护范围之内。下面本发明将以采用软件压缩速度、并行度与加速比之间的函数关系为例对本发明的技术方案进行描述。
例如,管理模块120中预先存储的函数关系如表1所示,在软件压缩速度为100MB/s、软件压缩比(Software Compression Ratio,SCR)为SCR-2时,并行度为1、2、3、4和5的并行度下的硬件加速比(Hardware Acceleration Ratio,HAR)分别为HAR-12、HAR-22、HAR-32、HAR-42和HAR-52,例如对应的值分别为3、4、5、5.2和5.3。显然,在并行度为3、4和5时,能够获得较大的加速比。但是,当并行度为4或5时,加速比相对于并行度3并没有显著的变化,即过多的硬件资源投入并没有带来显著的压缩速率的提高。因此并行度为3时为可以在满足压缩速度需求的情况下,节省更多资源,这些硬件资源可用于压缩其他数据块,提高整个***的压缩速度。此时,3为软件压缩速度为100MB/s、软件压缩比为SCR-2的数据库的目标并行度。
表1
管理模块120还可以根据预先存储的软件压缩速度、软件压缩比、并行度与加速比的拟合曲线,在曲线上确定第i个数据块的软件压缩速度对应的最优加速比,将与该最优加速比对应的并行度作为与第i个数据块对应的目标并行度。
可选的,作为另一例,管理模块120可以根据第一压缩速度、并行度与加速比的函数关系,再结合用户需求,确定第i个数据块对应的待生成压缩处理器的最优加速比,确定该最优加速比对应的并行度为第i数据块对应的待生成压缩处理器目标并行度Mi,该用户需求包括***压缩速度或能效水平。
当实际需求为更高的***压缩速度时,资源分配信息指示使用更多的硬件资源进行数据压缩,当实际需求为更好的能效水平时,可以不需要使用所有的硬件资源。
例如,管理模块120根据表1,在软件压缩速度为100MB/s、软件压缩比为SCR-2时,并行度为1、2、3、4和5的并行度下的硬件加速比(Hardware Acceleration Ratio,HAR)分别为HAR-12、HAR-22、HAR-32、HAR-42和HAR-52,例如对应的值分别为3、4、5、5.2和5.3。此时,可以结合用户需求确定最优加速比。如果用户需求的压缩速度对应的加速比为为5.3(或在5.3附近)时,可以确定该加速比对应的并行度5为目标并行度。
可选的,管理模块120还可以根据上述每个数据块的压缩信息和可利用硬件信息,确定资源分配信息,该资源分配信息还包括生成上述N个压缩处理器所需要的次数和每次生成的压缩处理器的数量。
这里,可利用硬件信息可以理解为当前可利用的硬件信息,或者也可以称为当前的硬件条件等,本发明对此不限定。
本发明实施例中的硬件资源具体可以为现场可编程门阵列(Field ProgrammableGate Array,FPGA)。该可利用硬件信息可以包括该硬件资源可以配置的压缩处理器的数量和各压缩处理器的并行度,如压缩处理器数量可以为8个、7个、6个或者5个,可利用硬件信息还包括压缩处理器的数量分别为8个、7个、6个或者5个时对应的各压缩处理器的并行度。
可选的,压缩模块130可以向管理模块120发送上述可利用硬件信息。具体的,压缩模块130和管理模块120可以通过总线和接口标准(Peripheral Component InterfaceExpress,PCIe)进行通信。当可利用硬件资源的数量或参数发生改变时,压缩模块130可以重新向管理模块120发送改变后的可利用硬件信息。
具体的,本发明实施例中,对于每个数据块,都会分配一个压缩处理器。
例如,当预处理模块获取了N个数据块的压缩信息时,压缩模块130需要生成N个压缩处理器分别来压缩每个数据块,N个压缩处理器中第i个压缩处理器的并行度为上述第i个数据块对应的目标并行度Mi。
当可利用的硬件资源不能一次配置N个并行度分别为Mj的压缩处理器时,资源分配信息可以指示将上述N个数据块分多次进行压缩。
例如,当将N个数据块分3次压缩时,第一次生成N1个压缩处理器,可以压缩N1个数据块,第二次生成N2个压缩处理器,可以压缩N2个数据块,第三次生成N3个压缩处理器,可以压缩N3个数据块,其中,N1、N2、N3分别为大于1的正整数,且N1+N2+N3=N。
又例如,预处理模块110获取了N个数据块的压缩信息,并将该N个压缩信息和N个数据块发送给管理模块120,管理模块120分别为N个数据块确定了目标并行度。但是,可利用硬件资源最多只能配置N个压缩处理器中的L个压缩处理器,L为小于N的正整数,即可以对其中的L个数据块进行压缩。此时,管理模块120可以确定先对其中的L个数据块进行压缩。当有一个数据块压缩完成时,动态生成目标并行度为ML+1的压缩处理器,压缩第L+1个数据块。
例如,可利用硬件信息表示硬件资源最多能配置7个压缩处理器。预处理模块获取了12个数据块和该12个数据块的压缩信息。当用户需求为最高的***压缩速度时,可以将硬件资源配置为4个压缩处理器,对上述12个数据块分3次进行压缩。此时,每个压缩处理器压缩数据块的目标并行度可以为该压缩处理器最大的并行度,这时,能够获得最高的***压缩速度。
当用户需求为最优的能效水平时,可以将硬件资源配置为6个压缩处理器,对上述12个数据块分2次进行压缩。每个压缩处理器压缩数据块的目标并行度可以不是压缩该数据块的最大加速比对应的并行度,这时,在满足用户压缩速度需求的同时可以获得最优的能效水平,即***功耗最低。
还可以结合用户需要的***压缩速度和能效水平,确定最合适的压缩处理器的数量和每个压缩处理器的并行度。又例如,可以将硬件资源配置为5个压缩处理器,使***在满足用户需求的***压缩速度下具有最低的功耗。
管理模块120将上述资源分配信息通过PCIe发送给压缩模块130。
压缩模块130用于根据上述资源分配信息,生成N个压缩处理器,其中,该N个压缩处理器中的第i个压缩处理器具有上述N个目标并行度中的第i个目标并行度,且第i个压缩处理器用于压缩与第i个目标并行度对应的数据块,i的取值范围为1至N。
可选的,作为一例,可以根据上述资源分配信息生成FPGA的配置文件,压缩模块130加载该配置文件,生成上述N个压缩处理器。
具体的,该配置文件可以为.bit文件。压缩模块将相应的配置文件加载到FPGA上,在毫秒量级就可以生成具有多个功能模块的压缩处理器。
可选的,作为另一例,可以根据上述资源分配信息生成FPGA的至少两个功能模块的连接关系,这时不需要重新加载配置文件,而是通过模块重组的方式生成多个压缩处理器。为了支持压缩模块的动态调控,可以将硬件资源例化为不同功能的多个功能模块,各功能模块的数量可以根据数据处理需求和硬件资源进行设置。
本发明实施例中各功能模块例如可以为控制模块、哈希计算器模块、哈希表模块、匹配比较模块、历史字典模块和选择电路模块等。
具体的,如图2所示,压缩模块130中可以包括控制器。图3为压缩模块130生成的第i个压缩处理器的示意图,其中Mi=m,该压缩处理器i中包括了m个匹配比较模块,此时该压缩处理器i可以同时比较m个匹配节点,从中选择匹配结果较长的结果输出。
控制器可以接收管理模块120发送的资源分配信息和上述N个数据块,再根据资源分配信息生成多个压缩处理器。然后控制器向并行度为Mi的压缩处理器发送数据块i。压缩处理器对数据块i进行压缩,输出压缩块i。经过压缩模块130的压缩,可以分别获得与N个数据块一一对应的N个压缩块。
可选的,在上述N个压缩处理器分别压缩N个数据块之后,压缩模块130可以获取第i个压缩处理器压缩第i个数据块的第二压缩速度,并向管理模块120发送该第二压缩速度。
管理模块120还用于计算第i个数据块的第二压缩速度和第i个数据块的第一压缩速度的比值,根据所述比值修正所述第i个数据块对应的所述最优加速比。该第二压缩速度可以为压缩处理器压缩数据块的硬件压缩速度。
这里,根据比值修正第i个数据块对应的最优加速比,具体可以为将第i个数据块对应的最优加速比替换为该比值,也可以将该第i个数据块对应的最优加速比替换为该比值与该最优加速比的平均值。也可以将该第i个数据块对应的最优加速比替换为根据该比值确定的另一加速比。本发明对此不限定。
具体的,以上述表1为例进行说明。当软件压缩速度为100MB/s、软件压缩比为SCR-2的数据块i目标并行度为3,并且目标并行度对应的加速比为5时,压缩模块130根据管理模块120确定的资源分配信息生成并行度Mi为5的压缩处理器,并记录该压缩处理器压缩数据块i的硬件压缩速度。
管理模块120根据数据块i实际的硬件压缩速度和预压缩模块获得的软件压缩速度,重新计算其存储的软件压缩速度100MB/s在并行度为5时的加速比,例如重新计算得到该加速比为5.5。则管理模块120将表1中的软件压缩速度为100MB/s、软件压缩比为SCR-2的数据块i的并行度3对应的加速比修正为5.5,或者将数据块i的并行度3对应的加速比修正为5.25。同样的,管理模块还可以根据实际的硬件压缩速度修正拟合曲线。
这样,通过修正管理模块120中预先存储的压缩信息和并行度对应的加速比的值,可以使管理模块更加准确预测不同并行度对应的加速比,进而确定出更加满足需求的压缩处理器的并行度。
本发明实施例中,管理模块120中最初存储的第一压缩速度、并行度和加速比的函数关系可以根据经验设置,也可以通过多次试验获得,例如预先压缩多个数据块获得该函数关系,本发明对此不作限定。
因此,本发明实施例能够对具有不同压缩信息的待压缩数据块动态调整压缩处理器的并行度,使得压缩模块生成的多个压缩处理器的并行度在满足***压缩速度的情况下进一步的提高***的能效水平,因而本发明实施例可以灵活、快速的实现数据的压缩。
应注意,本发明实施例中,预处理模块110和管理模块120可以由处理器实现,压缩模块可以由协处理器实现。如图4所示,***200可以包括处理器210、协处理器220、存储器230、收发器240和总线***250。其中,存储器230可以用于存储处理器210和协处理器220执行的代码等,收发器240可以用于接收和发送数据等。
***200中的各个组件通过总线***250耦合在一起,其中总线***250除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
图4所示的***200的各个功能可以参照上述图1至图3描述的***100的相应模块的操作,为避免重复,这里不再赘述。
图5示出了根据本发明实施例的数据压缩的方法300的示意性流程图。该方法300由上述数据压缩的***100执行或***200执行。图5中的方法包括:
310,获取N个数据块中的每个数据块的压缩信息,其中,N为大于1的正整数。
320,根据所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度。
330,根据所述资源分配信息,生成N个压缩处理器,其中,所述N个压缩处理器中的第i个压缩处理器具有所述N个目标并行度中的第i个目标并行度,且所述第i个压缩处理器用于压缩与所述第i个目标并行度对应的数据块,i的取值范围为1至N。
本发明实施例能够对具有不同压缩信息的待数据压缩块动态调整压缩处理器的并行度,使得压缩模块生成的多个压缩处理器的并行度在满足***压缩速度的情况下进一步的提高***的能效水平,因而本发明实施例可以灵活、快速的实现数据的压缩。
方法300的各个步骤可以参照上述图1至图3描述的***100的相应模块的操作,为避免重复,这里不再赘述。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。
Claims (13)
1.一种数据压缩的***,其特征在于,包括:
预处理模块,用于获取N个数据块中的每个数据块的压缩信息,其中,N为大于1的正整数;
管理模块,用于根据所述预处理模块获取的所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度;
压缩模块,用于根据所述资源分配信息,生成N个压缩处理器,其中,所述N个压缩处理器中的第i个压缩处理器具有所述N个目标并行度中的第i个目标并行度,且所述第i个压缩处理器用于压缩与所述第i个目标并行度对应的数据块,i的取值范围为1至N。
2.如权利要求1所述的***,其特征在于,所述管理模块还用于:
根据所述每个数据块的压缩信息和可利用硬件信息,确定所述资源分配信息,所述资源分配信息还包括生成所述N个压缩处理器需要的次数和每次生成的压缩处理器的数量。
3.如权利要求1或2所述的***,其特征在于,所述预处理模块具体用于:
获取所述N个数据块中的第i个数据块的子数据块;
对所述第i个数据块的子数据块进行软件压缩,获取所述第i个数据块的子数据块的压缩信息,将所述第i个数据块的子数据块的压缩信息作为所述第i个数据块的压缩信息。
4.如权利要求1所述的***,其特征在于,所述压缩信息包括第一压缩速度,所述管理模块具体用于:
根据第一压缩速度、并行度与加速比的函数关系,确定与所述第i个数据块的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i个数据块对应的目标并行度。
5.如权利要求1所述的***,其特征在于,所述压缩信息包括第一压缩速度,所述管理模块具体用于:
根据第一压缩速度、并行度与加速比的函数关系和用户需求,确定与所述第i个数据块对应的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i数据块对应的目标并行度,所述用户需求包括***压缩速度或能效水平。
6.如权利要求4或5所述的***,其特征在于,在所述压缩模块压缩所述N个数据块之后,所述压缩模块还用于:
获取所述第i个压缩处理器压缩所述第i个数据块的第二压缩速度;
所述管理模块还用于:
计算所述第i个数据块的第二压缩速度和所述第i个数据块的第一压缩速度的比值;
根据所述比值修正所述第i个数据块对应的所述最优加速比。
7.如权利要求2所述的***,其特征在于,在所述管理模块确定所述资源分配信息之前,所述管理模块还用于:
接收所述压缩模块发送的所述可利用硬件信息。
8.一种数据压缩的方法,其特征在于,包括:
获取N个数据块中的每个数据块的压缩信息,其中,N为大于1的正整数;
根据所述每个数据块的压缩信息,确定资源分配信息,所述资源分配信息包括与所述N个数据块一一对应的N个目标并行度;
根据所述资源分配信息,生成N个压缩处理器,其中,所述N个压缩处理器中的第i个压缩处理器具有所述N个目标并行度中的第i个目标并行度,且所述第i个压缩处理器用于压缩与所述第i个目标并行度对应的数据块,i的取值范围为1至N。
9.如权利要求8所述的方法,其特征在于,所述根据所述每个数据块的压缩信息,确定资源分配信息,包括:
根据所述每个数据块的压缩信息和可利用硬件信息,确定所述资源分配信息,所述资源分配信息还包括生成所述N个压缩处理器需要的次数和每次生成的压缩处理器的数量。
10.如权利要求8或9所述的方法,其特征在于,所述获取N个数据块中的每个数据块的压缩信息,包括:
获取所述N个数据块中的第i个数据块的子数据块;
对所述第i个数据块的子数据块进行软件压缩,获取所述第i个数据块的子数据块的压缩信息,将所述第i个数据块的子数据块的压缩信息作为所述第i个数据块的压缩信息。
11.如权利要求8所述的方法,其特征在于,所述压缩信息包括第一压缩速度,所述根据所述每个数据块的压缩信息,确定资源分配信息,包括:
根据第一压缩速度、并行度与加速比的函数关系,确定与所述第i个数据块的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i个数据块对应的目标并行度。
12.如权利要求8所述的方法,其特征在于,所述压缩信息包括第一压缩速度,所述根据所述每个数据块的压缩信息,确定资源分配信息,包括:
根据第一压缩速度、并行度与加速比的函数关系和用户需求,确定与所述第i个数据块对应的第一压缩速度对应的最优加速比,将与所述最优加速比对应的并行度作为与所述第i数据块对应的目标并行度,所述用户需求包括***压缩速度或能效水平。
13.如权利要求11或12所述的方法,其特征在于,还包括:
获取所述第i个压缩处理器压缩所述第i个数据块的第二压缩速度;
计算所述第i个数据块的第二压缩速度和所述第i个数据块的第一压缩速度的比值;
根据所述比值修正所述第i个数据块对应的所述最优加速比。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510885524.8A CN105553937B (zh) | 2015-12-03 | 2015-12-03 | 数据压缩的***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510885524.8A CN105553937B (zh) | 2015-12-03 | 2015-12-03 | 数据压缩的***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105553937A CN105553937A (zh) | 2016-05-04 |
CN105553937B true CN105553937B (zh) | 2018-12-07 |
Family
ID=55832873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510885524.8A Active CN105553937B (zh) | 2015-12-03 | 2015-12-03 | 数据压缩的***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105553937B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
CN107508602A (zh) * | 2017-09-01 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种数据压缩方法、***及其cpu处理器 |
CN108599774B (zh) * | 2018-04-26 | 2022-03-08 | 郑州云海信息技术有限公司 | 一种压缩方法、***、装置及计算机可读存储介质 |
CN110149320A (zh) * | 2019-04-30 | 2019-08-20 | 北京云迹科技有限公司 | 用于智能设备的数据监控方法及装置 |
CN113055017A (zh) * | 2019-12-28 | 2021-06-29 | 华为技术有限公司 | 数据压缩方法及计算设备 |
CN113268460B (zh) * | 2021-05-28 | 2022-10-14 | 中科计算技术西部研究院 | 基于多层次并行的基因数据无损压缩方法及装置 |
CN113285720B (zh) * | 2021-05-28 | 2023-07-07 | 中科计算技术西部研究院 | 基因数据无损压缩方法、集成电路及无损压缩设备 |
CN113659992B (zh) * | 2021-07-16 | 2023-08-11 | 深圳智慧林网络科技有限公司 | 数据压缩方法及装置、存储介质 |
CN114547027B (zh) * | 2022-02-11 | 2023-01-31 | 清华大学 | 容量和价值约束的数据压缩处理方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039417A (zh) * | 2007-04-26 | 2007-09-19 | 广东威创日新电子有限公司 | 多个分块并行压缩视频数据装置及其压缩方法 |
CN101262231A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种块状低密度校验码的译码方法及可重构多模式译码器 |
CN101420279A (zh) * | 2008-12-17 | 2009-04-29 | 航天恒星科技有限公司 | 移动多媒体广播中高速ldpc译码器及译码方法 |
CN102724500A (zh) * | 2012-06-05 | 2012-10-10 | 沙基昌 | 一种视频数据的压缩/解压缩方法及*** |
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
CN103902745A (zh) * | 2012-12-26 | 2014-07-02 | 中国电信股份有限公司 | 数据采集方法、装置和*** |
-
2015
- 2015-12-03 CN CN201510885524.8A patent/CN105553937B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101039417A (zh) * | 2007-04-26 | 2007-09-19 | 广东威创日新电子有限公司 | 多个分块并行压缩视频数据装置及其压缩方法 |
CN101262231A (zh) * | 2008-04-25 | 2008-09-10 | 浙江大学 | 一种块状低密度校验码的译码方法及可重构多模式译码器 |
CN101420279A (zh) * | 2008-12-17 | 2009-04-29 | 航天恒星科技有限公司 | 移动多媒体广播中高速ldpc译码器及译码方法 |
CN102724500A (zh) * | 2012-06-05 | 2012-10-10 | 沙基昌 | 一种视频数据的压缩/解压缩方法及*** |
CN103902745A (zh) * | 2012-12-26 | 2014-07-02 | 中国电信股份有限公司 | 数据采集方法、装置和*** |
CN103326730A (zh) * | 2013-06-06 | 2013-09-25 | 清华大学 | 数据并行压缩方法 |
Non-Patent Citations (1)
Title |
---|
实时数据并行压缩技术的研究;宋岸峰;《中国优秀硕士学位论文全文数据库》;20130715(第7期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105553937A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105553937B (zh) | 数据压缩的***和方法 | |
CN103458460B (zh) | 对信号数据进行压缩和解压缩的方法和装置 | |
US8542135B2 (en) | Compression algorithm incorporating automatic generation of a bank of predefined huffman dictionaries | |
US9172771B1 (en) | System and methods for compressing data based on data link characteristics | |
US8806292B2 (en) | Method of hybrid compression acceleration utilizing special and general purpose processors | |
CN102970043B (zh) | 一种基于gzip的压缩硬件***及其加速方法 | |
CN105183557B (zh) | 一种基于硬件的可配置的数据压缩*** | |
US20130135121A1 (en) | Compression algorithm incorporating dynamic selectionof a predefined huffman dictionary | |
US8610604B2 (en) | Compression algorithm incorporating a feedback loop for dynamic selection of a predefined Huffman dictionary | |
CN105207678A (zh) | 一种改进型lz4压缩算法的硬件实现*** | |
US20130010949A1 (en) | Method and system for compressing and encrypting data | |
WO2019019649A1 (zh) | 投资组合产品的生成方法、装置、存储介质和计算机设备 | |
CN111008230A (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
US20200294629A1 (en) | Gene sequencing data compression method and decompression method, system and computer-readable medium | |
US11329666B2 (en) | Method and system for compressing and/or encrypting data files | |
KR20210118073A (ko) | 파일들을 업데이트하기 위한 기법들 | |
Arram et al. | FPGA acceleration of reference-based compression for genomic data | |
JP6835285B1 (ja) | データ圧縮方法、データ圧縮装置、データ圧縮プログラム、データ伸長方法、データ伸長装置およびデータ伸長プログラム | |
CN103746701B (zh) | 一种用于Rice无损数据压缩的快速编码选项选择方法 | |
US9059729B1 (en) | Statistical compressibility determination system and method | |
Erdeljan et al. | IP core for efficient zero-run length compression of CNN feature maps | |
CN110784553A (zh) | 报文封装方法、设备及域名解析*** | |
US9235610B2 (en) | Short string compression | |
US10938412B2 (en) | Decompression of model parameters using functions based upon cumulative count distributions | |
CN104765790B (zh) | 一种数据查询的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |