CN115865274A - 一种数据压缩方法、数据解压缩方法及数据压缩装置 - Google Patents
一种数据压缩方法、数据解压缩方法及数据压缩装置 Download PDFInfo
- Publication number
- CN115865274A CN115865274A CN202211509276.3A CN202211509276A CN115865274A CN 115865274 A CN115865274 A CN 115865274A CN 202211509276 A CN202211509276 A CN 202211509276A CN 115865274 A CN115865274 A CN 115865274A
- Authority
- CN
- China
- Prior art keywords
- data packet
- data
- service data
- conversion table
- service
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据压缩方法、数据解压缩方法及数据压缩装置,可用于数据处理领域,该方法中,首先,获取业务数据包以及数据转换表的更新计时;而后,若获取业务数据包时数据转换表的更新计时小于预设更新周期,则基于当前更新周期内的数据转换表压缩业务数据包,得到压缩数据包;若获取业务数据包时数据转换表的更新计时大于或等于预设更新周期,则基于业务数据包,更新数据转换表;基于预设的压缩编码算法压缩业务数据包,得到压缩数据包;最后,输出压缩数据包。由此,可以较快地对业务数据包进行压缩,压缩率小,可以有效节省数据传输资源和存储资源。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据压缩方法、数据解压缩方法及数据压缩装置。
背景技术
随着信息技术的发展,例如铁路电子设备的监测数据等数据也越来越丰富,给数据的存储和传输带来了巨大的挑战。
目前,通常通过对数据进行压缩,以便于实现对大量的、丰富的数据的存储和传输,节省数据传输资源和存储资源。然而,现有的数据压缩算法存在无法有效的减小数据量、压缩速度慢或对处理器性能要求高等缺点,难以有效节省数据传输资源和存储资源。
由此,如何以一种数据压缩率小且压缩速度较快的数据压缩方法对数据进行压缩,成为目前亟待解决的问题。
发明内容
基于上述问题,本申请提供了一种数据压缩方法、数据解压缩方法及数据压缩装置,可以较快地对业务数据包进行压缩,压缩率小,可以有效节省数据传输资源和存储资源。
本申请实施例公开了如下技术方案:
第一方面,本申请提供了一种数据压缩方法,所述方法包括:
获取业务数据包以及数据转换表的更新计时;
若获取所述业务数据包时所述数据转换表的更新计时小于预设更新周期,则基于所述当前更新周期内的数据转换表压缩所述业务数据包,得到压缩数据包;
若获取所述业务数据包时所述数据转换表的更新计时大于或等于预设更新周期,则基于所述业务数据包,更新数据转换表;基于预设的压缩编码算法压缩所述业务数据包,得到压缩数据包;
输出所述压缩数据包。
可选地,所述获取业务数据包以及数据转换表的更新计时之前,所述方法还包括:
获取原始数据;
基于预设的数据包长度,将所述原始数据拆分为多个业务数据包。
可选地,所述压缩数据包包括:转换数据包、冗余数据包以及编码数据包中的至少一项。
可选地,所述基于预设的压缩编码算法压缩所述业务数据包,得到压缩数据包,包括:
基于预设的压缩编码算法对所述业务数据包内的业务数据进行编码,得到编码数据;
基于所述编码数据、所述业务数据以及二者的长度比较结果,得到转换数据包。
可选地,所述获取业务数据包以及数据转换表的更新计时之后,所述方法还包括:
获取当前统计周期的统计压缩率,所述统计周期小于所述更新周期;
若所述统计压缩率大于预设的压缩率阈值,则基于所述业务数据包,更新数据转换表;基于预设的压缩编码算法压缩所述业务数据包,得到转换数据包。
可选地,所述基于所述当前更新周期内的数据转换表压缩所述业务数据包,包括:
基于所述当前更新周期内的数据转换表与所述业务数据包的数据比对结果,对所述业务数据包进行行程长度编码,得到编码数据包。
可选地,所述基于所述当前更新周期内的数据转换表压缩所述业务数据包之前,所述方法还包括:
对比所述业务数据包内的业务数据与在前数据包内的在前数据;所述在前数据包为接收所述业务数据包之前接收的前一个数据包;
若所述业务数据与所述在前数据相同,则基于预先设置的冗余标识表示所述业务数据包,得到的冗余数据包。
可选地,其特征在于,所述输出所述压缩数据包之前,所述方法还包括:
基于所述压缩数据包的类型,为所述压缩数据包添加数据包类型标识;所述数据包类型标识包括转换数据包标识、编码数据包标识以及冗余数据包标识中的至少一项。
第二方面,本申请提供了一种数据解压缩方法,所述方法包括:
获取压缩数据包;所述压缩数据包为上述第一方面输出的压缩数据包;
基于所述压缩数据包携带的数据包类型标识,确定所述压缩数据包对应的解压规则;
基于所述解压规则,解压所述压缩数据包。
第三方面,本申请提供了一种数据压缩装置,所述装置包括:获取模块,第一压缩模块,第二压缩模块以及输出模块;
所述获取模块,用于获取业务数据包以及数据转换表的更新计时;
所述第一压缩模块,用于当获取所述业务数据包时所述数据转换表的更新计时小于预设更新周期时,基于所述当前更新周期内的数据转换表压缩所述业务数据包,得到压缩数据包;
所述第二压缩模块,用于当获取所述业务数据包时所述数据转换表的更新计时大于或等于预设更新周期时,基于所述业务数据包,更新数据转换表;基于预设的压缩编码算法压缩所述业务数据包,得到压缩数据包;
所述输出模块,用于输出所述压缩数据包。
相较于现有技术,本申请具有以下有益效果:
本申请提供了一种数据压缩方法,该方法中,首先,获取业务数据包以及数据转换表的更新计时;而后,若获取业务数据包时数据转换表的更新计时小于预设更新周期,则基于当前更新周期内的数据转换表压缩业务数据包,得到压缩数据包;若获取业务数据包时数据转换表的更新计时大于或等于预设更新周期,则基于业务数据包,更新数据转换表;基于预设的压缩编码算法压缩业务数据包,得到压缩数据包;最后,输出压缩数据包。由此,利用临近的业务数据包中的数据的渐变性,基于数据转换表的更新周期,判断是否使用业务数据包来更新数据转换表,若否,则可以通过比对业务数据包中的业务数据中与数据转换表中的数据并使用代码代替比较一致的部分来实现对业务数据包的压缩,该方法压缩速度快,得到的压缩数据包与业务数据包的大小之比小,也即通过该方法对业务数据包进行数据压缩,其数据压缩率小,可以有效地节省数据传输资源和存储资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据压缩方法流程图;
图2为本申请实施例提供的另一种数据压缩方法流程图;
图3为本申请实施例提供的一种数据解压缩方法流程图;
图4为本申请实施例提供的一种数据压缩装置示意图。
具体实施方式
本申请实施例提供了一种数据压缩方法、数据解压缩方法及数据压缩装置,可以有效节省数据传输资源和存储资源。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
当然,上述术语的解释仅为方便理解而做出,而不具有任何限制含义。
正如前文描述,目前通常通过对数据进行压缩,以便于实现对大量的、丰富的数据的存储和传输,节省数据传输资源和存储资源。然而,现有的数据压缩算法存在无法有效的减小数据量、压缩速度慢或对处理器性能要求高等缺点,难以有效节省数据传输资源和存储资源。
有鉴于此,本申请提供了一种数据压缩方法,该方法中,首先,获取业务数据包以及数据转换表的更新计时;而后,若获取业务数据包时数据转换表的更新计时小于预设更新周期,则基于当前更新周期内的数据转换表压缩业务数据包,得到压缩数据包;若获取业务数据包时数据转换表的更新计时大于或等于预设更新周期,则基于业务数据包,更新数据转换表;基于预设的压缩编码算法压缩业务数据包,得到压缩数据包;最后,输出压缩数据包。由此,可以较快地对业务数据包进行压缩,压缩率小,可以有效节省数据传输资源和存储资源。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,该图为本申请实施例提供的一种数据压缩方法流程图,该方法包括:
S101:获取业务数据包以及数据转换表的更新计时。
示例性地,可以获取例如铁路监测系统提供的监测数据等的原始数据,基于预设的数据包长度,将原始数据拆分为多个业务数据包。例如,预设的数据包长度可以为128字节,若原始数据的长度为326字节,则可以将该原始数据拆分为三个业务数据包,三个业务数据包的长度分别为128字节、128字节和70字节。
特别地,若原始数据的长度小于或等于128字节,则不对该原始数据进行拆分,由于本申请实施例可以灵活设置数据包长度,可以将数据包长度设置为一个较小的值(例如128字节),并默认小于该长度的原始数据无需压缩。作为示例,在本申请实施例中,若原始数据的长度小于或等于128字节,将通过REL编码对原始数据进行处理,若原始数据经处理后的长度增加,则输出处理前的原始数据;若原始数据经处理后的长度减小,则输出处理后的原始数据。
作为示例,可以预先设置数据转换表的更新周期为T,并进行数据转换表的更新计时,可以在每个更新周期开始时更新数据转换表。例如,可以在数据转换表的更新计时大于或等于预设的更新周期时,判断应进入新的更新周期,此时,可以更新数据转换表,并重置数据转换表的更新计时。
S102:若获取业务数据包时数据转换表的更新计时小于预设更新周期,则基于当前更新周期内的数据转换表压缩业务数据包,得到压缩数据包。
示例性地,压缩数据包可以包括转换数据包、编码数据包以及冗余数据包中的至少一种。
作为示例,若获取业务数据包时数据转换表的更新计时小于预设更新周期,则可以以当前更新周期内的数据转换表为基准,基于当前更新周期内的数据转换表与业务数据包的数据比对结果,对业务数据包进行行程长度编码,从而实现对业务数据包的压缩,得到压缩数据包,该压缩数据包为编码数据包。
具体地,可以将业务数据包中的业务数据与数据转换表的数据进行逐个字节的扫描对比,对于连续的、比较一致的数据,则记录比较一致的字节个数,使用编码标识和比较一致的字节个数来代替比较一致的数据;对于比较不一致的字节,则用比较不一致的字节个数和业务数据来表示,从而得到压缩数据包,该压缩数据包为编码数据包。
优选地,为了避免编码数据包内的编码数据的长度大于业务数据包内的业务数据的长度,可以预先设定连续两个及以上的字节一致时才判断其为连续的、比较一致的数据,否则均按照比较不一致处理。
作为示例,若数据转换表为“0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x090x0A 0x0B 0x0C 0x0D 0x0E 0x0F”,业务数据为“0x01 0x02 0x03 0x00 0x00 0x00 0x070x00 0x09 0x0A 0x00 0x0C 0x0D 0x0E 0x0F”,对数据转换表和业务数据中的字节进行比较,可以得到业务数据中的“0x01 0x02 0x03”与数据转换表比较一致,连续个数为3,则可以用“0x83”表示这三个字节。其中,“0x83”为8比特16进制数,其二进制码为“10000011”,二进制码的最高位“1”为编码标识,二进制码的低7位“0000011”转换为十进制为3,表示有3个字节被压缩。同理,业务数据中“0x00 0x00 0x00 0x07 0x00”只有0x07一个字节与数转换表中一致,连续个数小于2,因此认为比较不一致,用数据个数“0x05”+业务数据“0x00 0x000x00 0x07 0x00”表示为“0x05 0x00 0x00 0x00 0x07 0x00”;业务数据中“0x09 0x0A”与数据转换表比较一致,连续个数为2,可用“0x82”表示;接下来“0x00”用“0x01 0x00”表示,“0x0C 0x0D 0x0E 0x0F”用“0x84”表示;业务数据编码后为“0x83 0x05 0x00 0x00 0x000x07 0x00 0x82 0x01 0x00 0x84”。由此,可以将业务数据包压缩,得到压缩数据包,该压缩数据包为编码数据包。
S103:若获取业务数据包时数据转换表的更新计时大于或等于预设更新周期,则基于业务数据包,更新数据转换表;基于预设的压缩编码算法压缩业务数据包,得到压缩数据包。
示例性地,若获取业务数据包时数据转换表的更新计时大于或等于预设更新周期,,此时可以判断应进入新的更新周期,可以基于业务数据包更新数据转换表,具体地,可以使用业务数据包内的数据作为数据转换表的数据;而对于业务数据包的压缩,可以基于预设的压缩编码算法压缩业务数据包,得到压缩数据包,得到的压缩数据包为转换数据包。
可选地,可以基于预设的压缩编码算法对业务数据包内的业务数据进行编码,得到编码数据;基于编码数据、业务数据以及二者的长度比较结果,得到转换数据包。具体地,预设的压缩编码算法可以是行程长度编码(Run-Length Encoding,REL)算法,可以扫描业务数据包以得到业务数据,对业务数据进行REL编码,得到编码数据。REL编码算法是用重复字节和重复次数的编码组合来代替重复字节的压缩算法,例如,业务数据为17个半角字符的字符串“AAAAAABBCDDEEEEEF”,对其进行REL编码,将得到“A6B2C1D2E5F1”这一具有12个半角字符的字符串,“A6B2C1D2E5F1”即为编码数据。得到编码数据后,比较编码数据和业务数据的长度,若编码数据的长度大于业务数据的长度,则使用业务数据作为转换数据包中的数据;若编码数据的长度小于业务数据的长度,则使用编码数据作为数据转换包中的数据,也即以业务数据和编码数据中长度较小的一个作为数据转换包内的数据。
可选地,可以在更新数据转换表后,重置数据转换表的更新计时,从而对每个更新周期分别计时。
S104:输出压缩数据包。
可选地,在输出压缩数据包之前,可以基于压缩数据包的类型,为压缩数据包添加数据包类型标识,数据包类型标识包括转换数据包标识、编码数据包标识以及冗余数据包标识中的至少一项。其中,数据包类型标识具体可以是基于实际需求自行定义的用于区分不同类型的压缩数据包的标识。
此外,还可以在输出压缩数据包之前,为压缩数据包添加校验和。校验和(checksum)是指传输位数的累加,当传输结束时,接收者可以根据这个数值判断是否接到了所有的数据,如果数值匹配,那么说明传送已经完成。
示例性地,对于转换数据包这一类压缩数据包,可以先为其添加转换数据包标识以及校验和,而后可以在需要输出压缩数据包时输出转换数据包标识、转换数据包以及校验和的组合。
由此,本申请实施例利用临近的业务数据包中的数据的渐变性,基于数据转换表的更新周期,判断是否使用业务数据包来更新数据转换表,若否,则可以通过比对业务数据包中的业务数据中与数据转换表中的数据并使用代码代替比较一致的部分来实现对业务数据包的压缩,该方法压缩速度快,得到的压缩数据包与业务数据包的大小之比小,也即通过该方法对业务数据包进行数据压缩,其数据压缩率小,可以更有效地节省数据传输资源和存储资源。
对于例如监测数据等随时间渐变的原始数据,其数据量较大,将被拆分为多个业务数据包,而原始数据随时间渐变,相邻的业务数据包内的数据重复量较大,通过本申请实施例提供的数据压缩方法,基于与当前需处理的业务数据包最近的数据转换表来压缩当前需处理的业务数据包,得到的压缩数据包与业务数据包的大小之比将很小,也即数据压缩率小,可以有效地节省数据传输资源和存储资源;而距离数据转换表生成时刻较为久远的数据相对于该数据转换表的变化量较大,若仍使用相同的数据转换表,将难以得到较小的数据压缩率,故可以预先设置一个合适的更新周期,周期性地基于业务数据包更新数据转换表,从而使得整个原始数据被快速、有效地压缩。
参见图2,该图为本申请实施例提供的另一种数据压缩方法,该方法包括:
S201:获取原始数据。
示例性地,原始数据可以是例如实时监测数据的随时间渐变的数据。
S202:基于预设的数据包长度,将原始数据拆分为多个业务数据包。
示例性地,可以在获取全部原始数据之后再基于预设的数据包长度拆分原始数据,也可以在获取原始数据的过程中基于预设的数据包长度拆分原始数据。例如,原始数据共计326字节,预设的数据包长度为128字节,则可以在获取全部326字节的原始数据后再拆分原始数据,也可以每获取到128字节的原始数据即将其拆分为一个业务数据包。
可选地,获取多个业务数据包的顺序与不同业务数据包内的业务数据在原始数据中的排列顺序相同。
S203:获取当前统计周期的统计压缩率。
作为示例,可以实时获取当前统计周期内全部已压缩数据包的统计压缩率,每间隔一个统计周期执行S204所述的步骤。统计压缩率可以是当前统计周期内全部已压缩数据包的压缩数据包大小之和与业务数据包大小之和的比值。
优选地,数据压缩率的统计周期应小于数据转换表的更新周期,从而可以及时发现当前更新周期内的数据压缩率超过预设的压缩率阈值,在这种情况下提前结束当前更新周期,更新数据转换表进入下一更新周期。示例性地,更新周期为T时,可以预先设置统计周期为T/2。
S204:判断数据压缩率是否大于预设的压缩率阈值,若是,则执行S205~S206所述的步骤;若否,则执行S207所述的步骤。
S205:基于业务数据包,更新数据转换表。
示例性地,由于更新了数据转换表,即进入了新的更新周期和统计周期,可以重置数据转换表的更新计时以及统计周期的计时。
S206:基于预设的压缩编码算法压缩业务数据包,得到转换数据包。
S207:判断获取业务数据包时数据转换表的更新计时是否小于预设更新周期,若是,则执行S208所述的步骤;若否,则执行S205~S206所述的步骤。
S208:对比业务数据包内的业务数据与在前数据包内的在前数据;在前数据包为接收业务数据包之前接收的前一个数据包。
示例性地,若本次处理的业务数据包为接收的第i个业务数据包,则在前数据包为接收的第i-1个业务数据包。为了数据传输的安全性或可靠性,在数据传输时经常会传送前后两包一摸一样的数据,通过对比业务数据包内的业务数据与在前数据包内的在前数据,可以判断当前接收的业务数据包内的业务数据是否与在前数据包内的在前数据相同。
S209:判断业务数据与在前数据是否相同,若是,则执行S210所述的步骤;若否,则执行S211所述的步骤。
S210:基于预先设置的冗余标识表示业务数据包,得到的冗余数据包。
本申请实施例中,冗余数据包是压缩数据包的一种。作为示例,冗余标识可以是预先设置的用于表示冗余数据包的标识,本申请实施例不对冗余标识的具体形式进行限定。
在业务数据与在前数据相同时,以预先设置的冗余标识表示业务数据包,一方面可以避免对相同的业务数据包进行重复处理,另一方面可以进一步地减小压缩数据包的大小,从而更有效地节省计算资源、数据传输资源以及存储资源。
S211:基于当前更新周期内的数据转换表与业务数据包的数据比对结果,对业务数据包进行行程长度编码,得到编码数据包。
S212:基于压缩数据包的类型,为压缩数据包添加数据包类型标识。
示例性地,,数据包类型标识包括转换压缩包标识、编码数据包标识以及冗余数据包标识中的至少一项。数据包类型标识具体可以是基于实际需求自行定义的用于区分不同类型的压缩数据包的标识,本申请实施例不对数据包类型标识的具体形式进行限定。
此外,还可以在输出压缩数据包之前,为压缩数据包添加校验和。校验和(checksum)是指传输位数的累加,当传输结束时,接收者可以根据这个数值判断是否接到了所有的数据,如果数值匹配,则说明传送已经完成。
示例性地,对于转换数据包这一类压缩数据包,可以先为其添加转换数据包标识以及校验和,而后可以在需要输出压缩数据包时输出转换数据包标识、转换数据包以及校验和的组合。
S213:计算压缩率。
示例性地,压缩率为压缩数据包与业务数据包的大小之比,压缩率越小,代表压缩效果越好。
特别地,本申请实施例不限定步骤S211和S212的执行顺序。
S214:输出压缩数据包。
参见图3,该图为本申请实施例提供的一种数据解压缩方法,该方法包括:
S301:获取压缩数据包。
示例性地,压缩数据包可以是任一通过本申请提供的数据压缩方法得到的、带有数据包类型标识的压缩数据包。
可选地,若压缩数据包携带校验和,则可以在压缩数据包输入时,首先进行校验和校验,以确定数据的正确性。
S302:基于压缩数据包携带的数据包类型标识,确定压缩数据包对应的解压规则。
作为示例,若压缩数据包携带的数据包类型标识为转换数据包标识,则确定压缩数据包对应第一解压规则;若压缩数据包携带的数据包类型标识为编码数据包标识,则确定压缩数据包对应第二解压规则;若压缩数据包携带的数据包类型标识为冗余数据包标识,则确定压缩数据包对应第三解压规则。
S303:基于解压规则,解压压缩数据包。
示例性地,第一解压规则可以是首先判断压缩数据包是否为REL编码,若是,则进行REL解码,将其恢复为数据转换表,若不是,则直接将其恢复为数据转换表,从而实现对压缩数据包的解压;第二解压规则可以是根据相应的数据转换表对压缩数据包进行查表解压;第三解压规则可以是直接使用冗余数据包关联的在前数据包的数据对其进行恢复解压。
参见图4,该图为本申请实施例提供的一种数据压缩装置示意图,该装置包括:获取模块401,第一压缩模块402,第二压缩模块403以及输出模块404。
获取模块401,用于获取业务数据包以及数据转换表的更新计时。
第一压缩模块402,用于当获取业务数据包时数据转换表的更新计时小于预设更新周期时,基于当前更新周期内的数据转换表压缩业务数据包,得到压缩数据包。
第二压缩模块403,用于当获取业务数据包时数据转换表的更新计时大于或等于预设更新周期时,基于业务数据包,更新数据转换表;基于预设的压缩编码算法压缩业务数据包,得到压缩数据包。
输出模块404,用于输出压缩数据包。
由此,本申请实施例利用临近的业务数据包中的数据的渐变性,基于数据转换表的更新周期,判断是否使用业务数据包来更新数据转换表,若否,则可以通过比对业务数据包中的业务数据中与数据转换表中的数据并使用代码代替比较一致的部分来实现对业务数据包的压缩,该方法压缩速度快,得到的压缩数据包与业务数据包的大小之比小,也即通过该方法对业务数据包进行数据压缩,其数据压缩率小,可以更有效地节省数据传输资源和存储资源。
可选地,该装置还可以包括:解压模块。
解压模块,用于获取压缩数据包;基于压缩数据包携带的数据包类型标识,确定压缩数据包对应的解压规则;基于解压规则,解压压缩数据包。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置及设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种数据压缩方法,其特征在于,所述方法包括:
获取业务数据包以及数据转换表的更新计时;
若获取所述业务数据包时所述数据转换表的更新计时小于预设更新周期,则基于所述当前更新周期内的数据转换表压缩所述业务数据包,得到压缩数据包;
若获取所述业务数据包时所述数据转换表的更新计时大于或等于预设更新周期,则基于所述业务数据包,更新数据转换表;基于预设的压缩编码算法压缩所述业务数据包,得到压缩数据包;
输出所述压缩数据包。
2.根据权利要求1所述的方法,其特征在于,所述获取业务数据包以及数据转换表的更新计时之前,所述方法还包括:
获取原始数据;
基于预设的数据包长度,将所述原始数据拆分为多个业务数据包。
3.根据权利要求1所述的方法,其特征在于,所述压缩数据包包括:转换数据包、冗余数据包以及编码数据包中的至少一项。
4.根据权利要求3所述的方法,其特征在于,所述基于预设的压缩编码算法压缩所述业务数据包,得到压缩数据包,包括:
基于预设的压缩编码算法对所述业务数据包内的业务数据进行编码,得到编码数据;
基于所述编码数据、所述业务数据以及二者的长度比较结果,得到转换数据包。
5.根据权利要求3所述的方法,其特征在于,所述获取业务数据包以及数据转换表的更新计时之后,所述方法还包括:
获取当前统计周期的统计压缩率,所述统计周期小于所述更新周期;
若所述统计压缩率大于预设的压缩率阈值,则基于所述业务数据包,更新数据转换表;基于预设的压缩编码算法压缩所述业务数据包,得到转换数据包。
6.根据权利要求3所述的方法,其特征在于,所述基于所述当前更新周期内的数据转换表压缩所述业务数据包,包括:
基于所述当前更新周期内的数据转换表与所述业务数据包的数据比对结果,对所述业务数据包进行行程长度编码,得到编码数据包。
7.根据权利要求3所述的方法,其特征在于,所述基于所述当前更新周期内的数据转换表压缩所述业务数据包之前,所述方法还包括:
对比所述业务数据包内的业务数据与在前数据包内的在前数据;所述在前数据包为接收所述业务数据包之前接收的前一个数据包;
若所述业务数据与所述在前数据相同,则基于预先设置的冗余标识表示所述业务数据包,得到的冗余数据包。
8.根据权利要求1-7任意一项所述的方法,其特征在于,所述输出所述压缩数据包之前,所述方法还包括:
基于所述压缩数据包的类型,为所述压缩数据包添加数据包类型标识;所述数据包类型标识包括转换数据包标识、编码数据包标识以及冗余数据包标识中的至少一项。
9.一种数据解压缩方法,其特征在于,所述方法包括:
获取压缩数据包;所述压缩数据包为权利要求8输出的压缩数据包;
基于所述压缩数据包携带的数据包类型标识,确定所述压缩数据包对应的解压规则;
基于所述解压规则,解压所述压缩数据包。
10.一种数据压缩装置,其特征在于,所述装置包括:获取模块,第一压缩模块,第二压缩模块以及输出模块;
所述获取模块,用于获取业务数据包以及数据转换表的更新计时;
所述第一压缩模块,用于当获取所述业务数据包时所述数据转换表的更新计时小于预设更新周期时,基于所述当前更新周期内的数据转换表压缩所述业务数据包,得到压缩数据包;
所述第二压缩模块,用于当获取所述业务数据包时所述数据转换表的更新计时大于或等于预设更新周期时,基于所述业务数据包,更新数据转换表;基于预设的压缩编码算法压缩所述业务数据包,得到压缩数据包;
所述输出模块,用于输出所述压缩数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509276.3A CN115865274A (zh) | 2022-11-29 | 2022-11-29 | 一种数据压缩方法、数据解压缩方法及数据压缩装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211509276.3A CN115865274A (zh) | 2022-11-29 | 2022-11-29 | 一种数据压缩方法、数据解压缩方法及数据压缩装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115865274A true CN115865274A (zh) | 2023-03-28 |
Family
ID=85667614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211509276.3A Pending CN115865274A (zh) | 2022-11-29 | 2022-11-29 | 一种数据压缩方法、数据解压缩方法及数据压缩装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115865274A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117376430A (zh) * | 2023-10-30 | 2024-01-09 | 北京富邦智达自动化科技有限公司 | 基于dcs的工业数据快速传输方法及系统 |
-
2022
- 2022-11-29 CN CN202211509276.3A patent/CN115865274A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117376430A (zh) * | 2023-10-30 | 2024-01-09 | 北京富邦智达自动化科技有限公司 | 基于dcs的工业数据快速传输方法及系统 |
CN117376430B (zh) * | 2023-10-30 | 2024-04-23 | 北京富邦智达自动化科技有限公司 | 基于dcs的工业数据快速传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101674315A (zh) | 一种时间戳压缩、解压缩的方法及装置 | |
US20100289676A1 (en) | Data compression/decompression method and computer readable storage medium storing compression/decompression program | |
CN112165331A (zh) | 数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备 | |
CN115865274A (zh) | 一种数据压缩方法、数据解压缩方法及数据压缩装置 | |
CN115208414B (zh) | 数据压缩方法、数据压缩装置、计算机设备及存储介质 | |
CN110518917A (zh) | 基于Huffman编码的LZW数据压缩方法及系统 | |
EP1266455A1 (en) | Method and apparatus for optimized lossless compression using a plurality of coders | |
CN109921970B (zh) | 一种数据处理方法及系统 | |
CN113965207B (zh) | 一种基于deflate霍夫曼编码的动态码表生成装置和方法 | |
CN115499506B (zh) | 一种基于lzw算法的mqtt信息传输数据压缩方法及服务器 | |
CN114979094B (zh) | 一种基于rtp的数据传输方法、装置、设备和介质 | |
CN112732810A (zh) | 数据发送系统及方法、装置、存储介质、电子装置 | |
CN112017049B (zh) | 一种证券行情转发系统和方法 | |
CN113986820A (zh) | 一种lz4格式文件转换为gzip格式文件的方法 | |
CN117014527A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
US10931303B1 (en) | Data processing system | |
CN110233627B (zh) | 一种基于流水式的硬件压缩的系统及方法 | |
CN114025024A (zh) | 一种数据传输方法及装置 | |
CN110995274B (zh) | 一种解压缩方法及装置 | |
CN114978427B (zh) | 数据处理方法、装置、程序产品、计算机设备和介质 | |
CN114666406B (zh) | 一种基于物模型的电力物联网数据压缩方法及装置 | |
CN102891730A (zh) | 基于bcd码卫星短报文的编码方法和装置 | |
CN101500164B (zh) | 算术编码的打包输出的方法和装置 | |
US7719448B2 (en) | Mechanism for coding a non-increasing sequence of values | |
KR100625670B1 (ko) | 그림 데이터 압축 방법과 장치 및 그 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |