CN102143039B - 数据压缩中数据分段方法及设备 - Google Patents
数据压缩中数据分段方法及设备 Download PDFInfo
- Publication number
- CN102143039B CN102143039B CN 201010213950 CN201010213950A CN102143039B CN 102143039 B CN102143039 B CN 102143039B CN 201010213950 CN201010213950 CN 201010213950 CN 201010213950 A CN201010213950 A CN 201010213950A CN 102143039 B CN102143039 B CN 102143039B
- Authority
- CN
- China
- Prior art keywords
- length
- data
- data flow
- chopping rule
- fingerprints
- 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
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种数据压缩中数据分段方法及设备。该方法包括根据待压缩的数据流中当前未分段数据流的长度,获取与所述当前未分段数据流的长度对应的分段规则,其中,随着未分段数据流的长度的增加,对应的分段规则得到满足的概率单调递增,且,第一长度对应的分段规则得到满足时,第二长度对应的分段规则一定也得到满足,第一长度和第二长度为未分段数据流的长度,且第一长度小于第二长度;采用所述分段规则对所述待压缩的数据流进行数据分段。本发明实施例可以有效控制数据分段的长度,提高字典使用效率。
Description
技术领域
本发明涉及网络通信技术,尤其涉及一种数据压缩中数据分段方法及设备。
背景技术
数据压缩是在数据的存储和传输中被广泛应用的一种技术。对于传输的数据而言,由于存在大量的冗余数据,发送端的网络设备对数据进行压缩之后再传输,可以有效地减少网络上传输的数据量,并降低传输时延。相应地,在接收端的网络设备首先需要进行解压缩。
目前数据传输的压缩技术可以分为两大类,一种是基于LZ(Lempel-Ziv)类算法的压缩技术,另一种称为冗余数据消除技术。其中,LZ压缩技术通常是发送端在数据块内部通过滑动窗口进行匹配,生成压缩字典并进行压缩,接收端生成相应的压缩字典并进行解压缩。冗余数据消除技术是利用数据传输过程中的存在大块的重复数据,由网络设备保存经过的大数据块,将其作为字典条目,在后续发送过程中,发现重复的数据块就使用字典中的短的编码索引进行替换。接收端根据收到的编码索引及所存储的字典条目将原始数据恢复出来。
如果把网络中传输的数据看作字节流,那么网络设备需要对经过的字节流进行适当的分段,把这些数据分段作为字典条目,以实现压缩。数据分段的长度对字典的使用效率及压缩比有影响,过大会降低字典的使用效率,过小会降低压缩比。
如果采用固定字节的分段方法,那么当某个分段的数据改变后,其后的数据分段的边界均将改变,使得根据后续数据分段建立的字典条目不能 被有效利用。为了解决固定分段产生的问题,现有技术可以采用内容指纹(Fingerprint)的方式,采用大小为W的滑动窗口,在待处理数据流中滑动,其中可以是逐字节或者逐双字节的滑动,在每次滑动过程中,计算窗口中的数据块的内容指纹,当该内容指纹符合预定的规则时,将该窗口的滑动方向上的边界点作为分段点,否则继续滑动窗口继续计算内容指纹直到确定出分段点。
在实现本发明过程中,发明人发现现有技术至少存在如下问题:采用上述分段方法可能会造成数据分段的长度过大,过大的数据分段会导致匹配概率的下降,降低了字典的使用效率。
发明内容
本发明实施例是提供一种数据压缩中数据分段方法及设备,用以解决现有技术中存在的数据分段的长度多大的问题。
本发明实施例提供了一种数据压缩中数据分段方法,包括:
根据待压缩的数据流中当前未分段数据流的长度,获取与所述当前未分段数据流的长度对应的分段规则,其中,随着未分段数据流的长度的增加,对应的分段规则得到满足的概率单调递增,且,第一长度对应的分段规则得到满足时,第二长度对应的分段规则一定也得到满足,第一长度和第二长度为未分段数据流的长度,且第一长度小于第二长度;
采用所述分段规则对所述待压缩的数据流进行数据分段。
本发明实施例提供一种数据压缩中数据分段设备,包括:
获取模块,用于根据待压缩的数据流中当前未分段数据流的长度,获取与所述当前未分段数据流的长度对应的分段规则,其中,随着未分段数据流的长度的增加,对应的分段规则得到满足的概率单调递增,且,第一长度对应的分段规则得到满足时,第二长度对应的分段规则一定也得到满足,第一长度和第二长度为未分段数据流的长度,且第一长度小于第二长度;
分段模块,用于采用所述分段规则对所述待压缩的数据流进行数据分段。
由上述技术方案可知,本发明实施例通过获取与未分段数据流的长度对应的分段规则,并且当分段规则满足上述条件时,可以使得当该长度越大时,分段规则发生的概率越大,因此,更容易被分段,所以可以有效地控制数据分段的长度,提高了匹配概率及字典的使用效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例的方法流程示意图;
图2为本发明第二实施例的方法流程示意图;
图3为本发明第三实施例的方法流程示意图;
图4为本发明实施例中第一数据流的数据分段示意图;
图5为本发明实施例中在第一数据流的基础上增加数据后的一种数据分段示意图;
图6a为本发明实施例中在第一数据流的基础上增加数据后的另一种数据分段示意图;
图6b为本发明实施例中在第一数据流的基础上增加数据后的再一种数据分段示意图;
图7为本发明实施例中第一数据分段示意图;
图8为本发明实施例中在第一数据分段增加数据后的示意图;
图9为本发明实施例中将第一数据分段再次分段后的示意图;
图10为本发明实施例中在第一数据分段再次分段后增加数据后的示意 图;
图11为本发明第四实施例的设备结构示意图;
图12为本发明第五实施例的设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明第一实施例的方法流程示意图,包括:
步骤11:根据待压缩的数据流中当前未分段的数据流的长度,获取与所述当前未分段数据流的长度对应的分段规则,其中,随着未分段数据流的长度的增加,对应的分段规则得到满足的概率单调递增,且,第一长度对应的分段规则得到满足时,第二长度对应的分段规则一定也得到满足,第一长度和第二长度为未分段数据流的长度,且第一长度小于第二长度。
其中,可以在接收到待压缩的数据流后,缓存该待压缩的数据流,在未分段之前,记录缓存的数据流的长度,因此可以得到未分段的数据流的长度。
其中,可以预先设置未分段数据流的长度与分段规则的对应关系,根据该对应关系获取对应的分段规则;
或者,也可以是设置一个关系式作为分段规则。
上述两种分段规则的实现可以分别参见下述的第二实施例和第三实施例。
步骤12:采用所述分段规则对所述待压缩的数据流进行数据分段。
其中,本发明实施例是通过匹配内容指纹与分段规则来确定分段点。具体为,该内容指纹为当前滑动窗内的数据内容的内容指纹,当该内容指纹满 足对应的分段规则时,则将该当前滑动窗的第一端点作为分段点,该第一端点为与滑动方向相同的该当前滑动窗的端点。例如,当滑动窗由序号小的数据端向序号大的数据端滑动时,第一端点为序号大的数据对应的端点。
本实施例获取与未分段数据流的长度对应的分段规则,当该长度越大时,分段规则被满足的概率单调递增,因此,更容易被分段;并且,当较小的长度对应的分段规则得到满足时,较大的长度对应的分段规则一定也得到满足,与采用与未分段数据流的长度无关的固定分段规则相比,可以使得采用固定分段规则得到的分段点依旧是分段点。通过增大分段的发生概率及保证原来的分段点依旧是分段点,可以有效地控制数据分段的长度,提高了匹配概率及字典的使用效率。
图2为本发明第二实施例的方法流程示意图,本实施例以预先设置对应关系为例。参见图2,包括:
步骤21:获取待压缩的数据流中当前未分段数据流的长度k。
步骤22:获取预先设置的未分段数据流的长度与分段规则的对应关系。
其中,该对应关系可以如表1所示:
未分段数 据流的长 度(字节) | [0,512] | (512,1024] | (1024,1536] | (1536,2048] | 其他 |
分段规则 | RF(SK)的 低7bit=0 | RF(SK)的 低6bit=0 | RF(SK)的低4bit=0 | RF(SK)的 低3bit=0 | RF(SK)的 低1bit=0 |
表1
其中,SK为当前滑动窗内的数据内容,RF(SK)为当前滑动窗内的数据内容的内容指纹,例如,该内容指纹可以为该数据内容的散列(Hash)函数,或者,采用Rabin Fingerprint函数、循环冗余校验(Cyclic Redundancy Check,CRC)算法、MD5(Message Digest 5)等算法得到。
在表1中,若k为512,则分段规则为RF(SK)的低7位(bit)=0,若RF(SK)满足这一分段规则,即RF(SK)的低7位全为0,则RF(SK)的低6位、低4bit、低3bit、低1bit也都是0,因此RF(SK)也满足k为513,514...等所有大于512的数时,k对应的分段规则。并且,随着k的增加,分段规则得到满足的概率增加,例如,如表1所示的呈单调递增。可以理解的是,表1所示的对应关系只是示例,该对应关系并不限于表1,但是,需要满足的是,如果当前滑动窗内的数据内容的内容指纹可以满足k较小时对应的分段规则时,则该内容指纹一定满足k较大时对应的分段规则。例如,将上述低N位全为0改为低N位全为1。
步骤23:查找该对应关系获取与当前未分段数据流的长度对应的分段规则。
例如,k位于[0,512]范围内时,分段规则为RF(SK)的低7位均为0;k位于(512,1024]范围内时,分段规则为RF(SK)的低6位均为0;后续依次类推。
步骤24:计算所述当前未分段数据流内的当前滑动窗内的数据内容的内容指纹RF(SK)。
步骤25:判断该内容指纹是否符合该分段规则,若是,执行步骤26,否则,执行步骤27。
具体地,计算出RF(SK)后,可以与步骤23得到的分段规则比较,以便判断RF(SK)是否符合分段规则。
步骤26:将该当前滑动窗的第一端点作为分段点,该第一端点为与滑动方向相同的端点。
例如,从序号小的数据端向序号大的数据端滑动时,将当前滑动窗的对应序号大的数据端作为分段点。
步骤27:将滑动窗继续滑动。
例如,将滑动窗向右滑动一个字节或双字节。
之后,可以重复执行步骤21直至找到分段点。
本实施例通过预先设置对应关系,该对应关系中,当内容指纹可以满足k较小时对应的分段规则时,一定满足k较大时对应的分段规则,可以使得数据流在增加数据后原来的分段点依旧是分段点。且随着k的增加,其对应的分段规则发生的概率增加,所以可以使得k较大时被分段的概率增加,避免出现较大的数据分段,进而提高字典的使用效率。
图3为本发明第三实施例的方法流程示意图,本实施例以分段规则为与k有关的关系式为例。参见图3,本实施例包括:
步骤31:获取待压缩的数据流中当前未分段数据流的长度k。
步骤32:计算所述当前未分段数据流内的当前滑动窗内的数据内容的内容指纹RF(SK)。RF()是内容指纹函数,该内容指纹函数可以为该数据内容的散列(Hash)函数,或者,采用Rabin Fingerprint函数、循环冗余校验(Cyclic Redundancy Check,CRC)算法、MD5(Message Digest 5)等算法得到。
步骤33:判断该内容指纹是否符合如下关系式,若是,执行步骤34,否则,执行步骤35。
该关系式如下:
其中,SK为当前滑动窗内的数据内容,RF(SK)为当前滑动窗内的数据内容的内容指纹,c为预先设定的常量,M为预先设定的最大分段长度,k为未分段数据流的长度,MOD(*)为取模运算,[*]表示向下取整运算。该关系式并不是唯一的,但是该关系式必然具有以下特征,当k较小时能使该关系式得到满足的RF(SK),必然满足当k较大时的该关系式。
步骤34:将该当前滑动窗的第一端点作为分段点,该第一端点为与滑动方向相同的端点。
例如,从序号小的数据端向序号大的数据端滑动时,将当前滑动窗的对应序号大的数据端作为分段点。
步骤35:将滑动窗继续滑动。
例如,将滑动窗向右滑动一个字节或双字节。
之后,可以重复执行步骤31直至找到分段点。
本实施例通过预先设置关系式,k越大,该关系式越容易满足,并且,当k较小时能使该关系式得到满足的内容指纹,必然满足当k较大时的该关系式,可以使得数据流在增加数据后原来的分段点依旧是分段点,并且k较大时被分段的概率增加,避免出现较大的数据分段,进而提高字典的使用效率。
下面对有效控制数据分段的长度及提高字典使用效率进行分析:
当k1小于k2时k1对应的分段规则得到满足时,k2对应的分段规则一定得到满足,且,随着k的增加,分段规则得到满足的概率增加。由于随着k的增加对应的分段规则得到满足的概率增加,则k越大时,越容易被分段,可以有效控制数据分段长度;由于k1对应的分段规则得到满足时,k2对应的分段规则一定得到满足,则可以使得具有相同内容的数据块具有相同的分段点,使得在数据增加后原来的分段点依旧是分段点,可以提高字典的使用效率。
例如,图4为本发明实施例中第一数据流的数据分段示意图;图5为本发明实施例中在第一数据流的基础上增加数据后的一种数据分段示意图;图6a为本发明实施例中在第一数据流的基础上增加数据后的另一种数据分段示意图;图6b为本发明实施例中在第一数据流的基础上增加数据后的再一种数据分段示意图。其中,F1、F2、F3表示滑动窗口。其中F1,F3满足内容指纹的低7位全为0,F2满足内容指纹的低4位全为0但不满足低7位全为0。可见与采用与未分段数据流的长度无关的固定分段规则,即无论未分段数据流的长度只有内容指纹的低7位全为0才可以分段相比,本发明实施例的方案可以使得采用固定分段规则得到的分段点依旧是分段点,并且可以增加分段数量。
在第一数据流的基础上增加数据后可能会存在如下情况:
情况一,由于本发明实施例中,k较小时对应的分段规则得到满足时,k较大对应的分段规则一定得到满足,则可以使得相同数据内容具有相同的分段点,即第一数据流的分段点,依旧是第二数据流的分段点。例如,参见图5,数据分段~2在增加数据后,其对应的分段点是不变的(滑动窗F2的右端点)。相对于采用固定分段规则的分段方式,数据分段~3依旧可以被再次利用,提高了字典的使用效率。
情况二,由于本发明实施例中,由于新插入的数据,使得计算窗口指纹的过程中,在包含插入数据的窗口中可能会满足匹配的规则,从而产生一个新的分段点。例如,参见图6a,数据分段~2在增加数据后,可能在数据分段~2的内部再产生一个新的分段点(滑动窗F21的右端点)。新的分段点与F2之间未分段数据流的长度小于F1的右端点与F2之间数据流的长度。如果新的分段点与F2之间未分段数据流的长度与F1的右端点与F2之间数据流的长度仍在对应于同一分段规则的长度范围中,即满足内容指纹的低4位全为0,此时F2的分段点仍然与以前相同。如果其长度范围不属于同一分段规则,而且此时F2的内容指纹也不能满足该较小的未分段数据流的长度对应的分段规则,则分段点可能会发生变化。参见图6b,分段点可能从F2变为F2’,也可能直到F3才找到分段点。由于F2的内容指纹不满足固定分段规则,即内容指纹的低7位全为0,所以该情形下使用固定分段规则也不会产生分段的。所以说相对于采用固定分段规则的分段方式,字典的使用效率至少没有更低。而如果F2的内容指纹可以满足该较小的未分段数据流的长度对应的分段规则(如图6a),则相对于采用固定分段规则的分段方式,数据分段~3依旧可以被再次利用,提高了字典的使用效率。其中,图6a和图6b中,“新增数据”对应的区域和“F21”对应的区域存在重叠。
从上述分析可以看出,由于要求:满足较小k时对应的分段规则则一定满足较大k时对应的分段规则,并且,随着k的增加,对应的分段规则得到 满足的概率增加。可以使得原始的分段点依旧是分段点,还可能在原始分段内产生新的分段点。所以,可以有效地抑制未分段数据的长度。
由于长度被减少,则字典的使用效率也会随之增加。
例如,图7为本发明实施例中第一数据分段示意图,图8为本发明实施例中在第一数据分段增加数据后的示意图,图9为本发明实施例中将第一数据分段再次分段后的示意图,图10为本发明实施例中在第一数据分段再次分段后增加数据后的示意图。
参见图7,假设第一数据分段为一个较大的数据分段~N;参见图8,在数据分段~N中增加了数据后得到数据分段~N’;由于增加数据后,该数据分段有所改变,那么数据分段~N不能被再次利用。对应地,参见图9,通过本发明实施例的方法,可以有效控制数据分段的长度,因此采用本发明实施例的方法后,较大的数据分段会被分为较小的数据分段,假设数据分段~N分为了数据分段~N1和数据分段~N2,若增加的数据在数据分段~N1,参见图10,增加数据后分别为数据分段~N1’和数据分段~N2,那么不能再次利用的只是数据分段~N1,而数据分段~N2依旧可以被再次利用。所以降低数据分段的长度后可以提高字典的使用效率。另一方面,如果直接采用被满足的概率较高的且与未分段数据流的长度无关的分段规则,虽然也可以提高字典的使用效率,但由于数据分段长度小时会降低压缩效率,所以实际使用效力也不如本发明实施例提供的可以有效地控制数据分段的长度的方案。
图11为本发明第四实施例的设备结构示意图,包括获取模块111和分段模块112;获取模块111用于根据待压缩的数据流中当前未分段数据流的长度,获取与所述当前未分段数据流的长度对应的分段规则,其中,随着未分段数据流的长度的增加,对应的分段规则得到满足的概率单调递增,且,第一长度对应的分段规则得到满足时,第二长度对应的分段规则一定也得到满足,第一长度和第二长度为未分段数据流的长度,且第一长度小于第二长度;分段模块112用于采用所述分段规则对所述待压缩的数据流进行数据分段。其中,所述分段规则可以为如下关系式:
其中,SK为当前滑动窗内的数据内容,RF(SK)为当前滑动窗内的数据内容的内容指纹,c为预先设定的常量,M为预先设定的最大分段长度,k为未分段数据流的长度,MOD表示取模运算;[*]表示向下取整运算。
进一步地,此时,分段模块112可以包括第一单元1121、第二单元1122和第三单元1123;第一单元1121用于计算所述当前未分段数据流内的当前滑动窗内的数据内容的内容指纹;第二单元1122用于判断所述内容指纹是否符合所述对应的分段规则;第三单元1123用于当所述内容指纹符合所述对应的分段规则时,将所述当前滑动窗的第一端点作为分段点,所述第一端点为所述当前滑动窗的与滑动方向相同的端点。
进一步地,所述第二单元可以具体用于当所述对应的分段规则是内容指纹的低N位全为1时,则判断RF(SK)的低N位是否全为1;或者,所述第二单元可以具体用于当所述对应的分段规则是内容指纹的低N位全为0时,则判断RF(SK)的低N位是否全为0;其中,SK为当前滑动窗内的数据内容,RF(SK)为当前滑动窗内的数据内容的内容指纹,且随着当前未分段数据流的长度的增加,N单调递减。
本实施例通过预先设置对应关系,该对应关系中,当内容指纹可以满足k较小时对应的分段规则时,一定满足k较大时对应的分段规则,可以使得数据流在增加数据后原来的分段点依旧是分段点。且随着k的增加,其对应的分段规则发生的概率增加,所以可以使得k较大时被分段的概率增加,避免出现较大的数据分段,进而提高字典的使用效率。
图12为本发明第五实施例的设备结构示意图,包括获取模块121、和分段模块122;其中,获取模块121包括第四单元1211和第五单元1212;第四单元1211用于获取预先设置的未分段数据流的长度与分段规则的对应关系;第五单元1212用于查找所述对应关系获取与所述当前未分段数据流的长度 对应的分段规则;分段模块122包括第一单元1221、第二单元1222和第三单元1223;第一单元1221用于计算所述当前未分段数据流内的当前滑动窗内的数据内容的内容指纹;第二单元1222用于判断所述内容指纹是否符合所述对应的分段规则;第三单元1223用于当所述内容指纹符合所述对应的分段规则时,将所述当前滑动窗的第一端点作为分段点,所述第一端点为所述当前滑动窗的与滑动方向相同的端点。
进一步地,所述第二单元可以具体用于当所述对应的分段规则是内容指纹的低N位全为1时,则判断RF(SK)的低N位是否全为1;或者,所述第二单元可以具体用于当所述对应的分段规则是内容指纹的低N位全为0时,则判断RF(SK)的低N位是否全为0;其中,SK为当前滑动窗内的数据内容,RF(SK)为当前滑动窗内的数据内容的内容指纹,且随着当前未分段数据流的长度的增加,N单调递减。
本实施例通过预先设置关系式,k越大,该关系式越容易满足,并且,当k较小时能使该关系式得到满足的内容指纹,必然满足当k较大时的该关系式,可以使得数据流在增加数据后原来的分段点依旧是分段点,并且k较大时被分段的概率增加,避免出现较大的数据分段,进而提高字典的使用效率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据压缩中数据分段方法,其特征在于,包括:
根据待压缩的数据流中当前未分段数据流的长度,获取与所述当前未分段数据流的长度对应的分段规则,其中,随着未分段数据流的长度的增加,对应的分段规则得到满足的概率单调递增,且,第一长度对应的分段规则得到满足时,第二长度对应的分段规则一定也得到满足,第一长度和第二长度为未分段数据流的长度,且第一长度小于第二长度;
采用所述分段规则对所述待压缩的数据流进行数据分段。
2.根据权利要求1所述的方法,其特征在于,所述采用所述分段规则对所述待压缩的数据流进行数据分段,包括:
计算所述当前未分段数据流内的当前滑动窗内的数据内容的内容指纹;
判断所述内容指纹是否符合所述对应的分段规则;
当所述内容指纹符合所述对应的分段规则时,将所述当前滑动窗的第一端点作为分段点,所述第一端点为所述当前滑动窗的与滑动方向相同的端点。
3.根据权利要求2所述的方法,其特征在于,所述获取与所述当前未分段数据流的长度对应的分段规则,包括:
获取预先设置的未分段数据流的长度与分段规则的对应关系;
查找所述对应关系获取与所述当前未分段数据流的长度对应的分段规则。
5.根据权利要求2所述的方法,其特征在于,所述判断所述内容指纹是否符合所述对应的分段规则,包括:
当所述对应的分段规则是内容指纹的低N位全为1时,判断RF(SK)的低N位是否全为1;
或者,
当所述对应的分段规则是内容指纹的低N位全为0时,判断RF(SK)的低N位是否全为0;
其中,SK为当前滑动窗内的数据内容,RF(SK)为当前滑动窗内的数据内容的内容指纹,且随着当前未分段数据流的长度的增加,N单调递减。
6.一种数据压缩中数据分段设备,其特征在于,包括:
获取模块,用于根据待压缩的数据流中当前未分段数据流的长度,获取与所述当前未分段数据流的长度对应的分段规则,其中,随着未分段数据流的长度的增加,对应的分段规则得到满足的概率单调递增,且,第一长度对应的分段规则得到满足时,第二长度对应的分段规则一定也得到满足,第一长度和第二长度为未分段数据流的长度,且第一长度小于第二长度;
分段模块,用于采用所述分段规则对所述待压缩的数据流进行数据分段。
7.根据权利要求6所述的设备,其特征在于,所述分段模块包括:
第一单元,用于计算所述当前未分段数据流内的当前滑动窗内的数据内容的内容指纹;
第二单元,用于判断所述内容指纹是否符合所述对应的分段规则;
第三单元,用于当所述内容指纹符合所述对应的分段规则时,将所述当前滑动窗的第一端点作为分段点,所述第一端点为所述当前滑动窗的与滑动方向相同的端点。
8.根据权利要求7所述的设备,其特征在于,所述获取模块包括:
第四单元,用于获取预先设置的未分段数据流的长度与分段规则的对应关系;
第五单元,用于查找所述对应关系获取与所述当前未分段数据流的长度对应的分段规则。
10.根据权利要求7所述的设备,其特征在于,
所述第二单元具体用于当所述对应的分段规则是内容指纹的低N位全为1时,判断RF(SK)的低N位是否全为1;
或者,
所述第二单元具体用于当所述对应的分段规则是内容指纹的低N位全为0时,判断RF(SK)的低N位是否全为0;
其中,SK为当前滑动窗内的数据内容,RF(SK)为当前滑动窗内的数据内容的内容指纹,且随着当前未分段数据流的长度的增加,N单调递减。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010213950 CN102143039B (zh) | 2010-06-29 | 2010-06-29 | 数据压缩中数据分段方法及设备 |
EP11780151.4A EP2509226A4 (en) | 2010-06-29 | 2011-04-28 | METHOD AND DEVICE FOR SEGMENTING DATA IN COMPRESSION OF DATA |
PCT/CN2011/073483 WO2011140930A1 (zh) | 2010-06-29 | 2011-04-28 | 数据压缩中数据分段方法及设备 |
US13/588,851 US8924591B2 (en) | 2010-06-29 | 2012-08-17 | Method and device for data segmentation in data compression |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010213950 CN102143039B (zh) | 2010-06-29 | 2010-06-29 | 数据压缩中数据分段方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102143039A CN102143039A (zh) | 2011-08-03 |
CN102143039B true CN102143039B (zh) | 2013-11-06 |
Family
ID=44410278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010213950 Active CN102143039B (zh) | 2010-06-29 | 2010-06-29 | 数据压缩中数据分段方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8924591B2 (zh) |
EP (1) | EP2509226A4 (zh) |
CN (1) | CN102143039B (zh) |
WO (1) | WO2011140930A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036642B (zh) * | 2011-10-09 | 2015-11-25 | 华为技术有限公司 | 一种数据的传输方法及发送端和接收端 |
CN103210590B (zh) * | 2012-08-21 | 2016-09-28 | 华为技术有限公司 | 压缩方法及设备 |
CN103716056B (zh) * | 2012-09-29 | 2017-08-11 | 华为技术有限公司 | 数据压缩方法、数据解压缩方法和设备 |
US9306997B2 (en) | 2013-01-16 | 2016-04-05 | Cisco Technology, Inc. | Method for optimizing WAN traffic with deduplicated storage |
US9300748B2 (en) * | 2013-01-16 | 2016-03-29 | Cisco Technology, Inc. | Method for optimizing WAN traffic with efficient indexing scheme |
US9509736B2 (en) | 2013-01-16 | 2016-11-29 | Cisco Technology, Inc. | Method for optimizing WAN traffic |
CA2898667C (en) | 2013-08-19 | 2019-01-15 | Huawei Technologies Co., Ltd. | Data object processing method and apparatus |
SG11201601357TA (en) * | 2014-02-14 | 2016-03-30 | Huawei Tech Co Ltd | Method and server for searching for data stream dividing point based on server |
WO2021237518A1 (zh) * | 2020-05-27 | 2021-12-02 | 深圳市大疆创新科技有限公司 | 数据存储的方法、装置、处理器及计算机存储介质 |
CN113553355A (zh) * | 2021-07-23 | 2021-10-26 | 咪咕文化科技有限公司 | 数据分段方法、装置、设备及计算机可读存储介质 |
CN115204754B (zh) * | 2022-09-15 | 2022-12-09 | 山东西曼克技术有限公司 | 一种基于大数据的热力供需信息管理平台 |
CN116980457B (zh) * | 2023-09-21 | 2023-12-08 | 江苏赛融科技股份有限公司 | 一种基于物联网的远程控制系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972132A (zh) * | 2005-11-24 | 2007-05-30 | 盛群半导体股份有限公司 | 声音处理方式 |
CN1997011A (zh) * | 2006-07-26 | 2007-07-11 | 白杰 | 数据分割方法和数据分割装置 |
CN101493499A (zh) * | 2009-03-09 | 2009-07-29 | 合肥工业大学 | 一种幂次数切分的lfsr重播种vlsi测试数据压缩方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701125A (en) * | 1994-06-15 | 1997-12-23 | The United States Of America As Represented By The United States Department Of Energy | Method for compression of data using single pass LZSS and run-length encoding |
US6667700B1 (en) * | 2002-10-30 | 2003-12-23 | Nbt Technology, Inc. | Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation |
US20040237102A1 (en) * | 2003-03-07 | 2004-11-25 | Richard Konig | Advertisement substitution |
US7720299B2 (en) * | 2005-05-10 | 2010-05-18 | The Aerospace Corporation | Compressed data multiple description transmission and resolution conversion system |
US7733910B2 (en) * | 2006-12-29 | 2010-06-08 | Riverbed Technology, Inc. | Data segmentation using shift-varying predicate function fingerprinting |
CN102479245B (zh) * | 2010-11-30 | 2013-07-17 | 英业达集团(天津)电子技术有限公司 | 数据区块的切分方法 |
-
2010
- 2010-06-29 CN CN 201010213950 patent/CN102143039B/zh active Active
-
2011
- 2011-04-28 WO PCT/CN2011/073483 patent/WO2011140930A1/zh active Application Filing
- 2011-04-28 EP EP11780151.4A patent/EP2509226A4/en not_active Ceased
-
2012
- 2012-08-17 US US13/588,851 patent/US8924591B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1972132A (zh) * | 2005-11-24 | 2007-05-30 | 盛群半导体股份有限公司 | 声音处理方式 |
CN1997011A (zh) * | 2006-07-26 | 2007-07-11 | 白杰 | 数据分割方法和数据分割装置 |
CN101493499A (zh) * | 2009-03-09 | 2009-07-29 | 合肥工业大学 | 一种幂次数切分的lfsr重播种vlsi测试数据压缩方法 |
Non-Patent Citations (3)
Title |
---|
《Fingerprinting By Random Polynomials》;RABIN MICHAEL O.;《Thesis the Hebrew University of Jerusalem and Harvard University,http://www.xmailserver.org/rabin.pdf 》;19811231;全文 * |
P. Deutsch.《DEFLATE Compressed Data Format Specification version 1.3》.《IETF-RFC-1951,http://www.ietf.org/rfc/rfc1951.pdf》.1996,全文. * |
RABIN MICHAEL O..《Fingerprinting By Random Polynomials》.《Thesis the Hebrew University of Jerusalem and Harvard University,http://www.xmailserver.org/rabin.pdf 》.1981,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN102143039A (zh) | 2011-08-03 |
WO2011140930A1 (zh) | 2011-11-17 |
US8924591B2 (en) | 2014-12-30 |
US20120311188A1 (en) | 2012-12-06 |
EP2509226A4 (en) | 2013-06-19 |
EP2509226A1 (en) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102143039B (zh) | 数据压缩中数据分段方法及设备 | |
US10715618B2 (en) | Compressibility estimation for lossless data compression | |
EP2940598B1 (en) | Data object processing method and device | |
CN112953550B (zh) | 数据压缩的方法、电子设备及存储介质 | |
US11722148B2 (en) | Systems and methods of data compression | |
CN103236847A (zh) | 基于多层哈希结构与游程编码的数据无损压缩方法 | |
CN103020317A (zh) | 基于重复数据删除的数据压缩方法和装置 | |
US8688621B2 (en) | Systems and methods for information compression | |
CN103346800B (zh) | 一种数据压缩方法及装置 | |
CN106202213A (zh) | 一种fpga二进制文件压缩、解压方法及压缩、解压装置 | |
CN116506073A (zh) | 一种工业计算机平台数据快速传输方法及系统 | |
CN104125458A (zh) | 内存数据无损压缩方法及装置 | |
CN104869397A (zh) | 一种基于slwe概率估计模型的自适应区间编码方法及解码方法 | |
US20220004524A1 (en) | Chunking method and apparatus | |
CN116303297B (zh) | 文件压缩处理方法、装置、设备及介质 | |
US20170147624A1 (en) | Hardware lzma compressor | |
CN104734722A (zh) | 数据压缩方法及数据解压缩装置 | |
CN103049388B (zh) | 一种分页存储器件的压缩管理方法及装置 | |
WO2024021491A1 (zh) | 一种数据切片方法、装置和系统 | |
CN103036642A (zh) | 一种数据的传输方法及发送端和接收端 | |
CN113377391B (zh) | 镜像文件的制作和烧录的方法、装置、设备和介质 | |
CN114035822A (zh) | 一种文件更新方法及设备 | |
CN114416752B (zh) | Kv ssd的数据处理方法及装置 | |
CN111831480A (zh) | 一种基于去重系统的分层编码方法、装置及去重系统 | |
CN116318171B (zh) | Lz4解压缩硬件加速实现/压缩方法、装置、介质及芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |