一种数据压缩方法及装置与流程

文档序号:16514195发布日期:2019-01-05 09:31阅读:144来源:国知局
一种数据压缩方法及装置与流程
本发明涉及通信
技术领域
,特别涉及一种数据压缩方法及装置。
背景技术
:acl(accesscontrollist,访问控制列表)、l2cp(layer2controlprotocol,二层控制协议)等功能常涉及控制指定mac(mediaaccesscontrol,媒体访问控制)地址、ip(internetprotocol,互联网协议)地址的数据包、协议包等。目前,配置条目与硬件条目通常一一对应,利用率较低,当配置条目较多时,会占用大量的硬件资源。特别的,当业务需求的配置条目很大时,硬件资源的技术指标可能无法满足需求。在现有技术中,针对配置数据占用大量硬件资源的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例的目的在于提供一种数据压缩方法及装置,解决了配置数据占用大量硬件资源的问题。为了达到上述目的,本发明实施例提供一种数据压缩方法,该方法包括:获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本发明实施例还提供一种数据压缩装置,该装置包括:获取模块,用于获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;压缩模块,用于根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本发明实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的数据压缩方法。本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的数据压缩方法。上述技术方案中的一个技术方案具有如下优点或有益效果:本发明实施例通过获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本发明实施例基于多条输入数据的数据区、掩码区和标志位对多条输入数据进行压缩,可以减少输入数据的数量,解决了配置数据占用大量硬件资源的问题。附图说明图1为本发明实施例提供的数据压缩方法的流程图;图2为本发明又一实施例提供的数据压缩方法的流程图;图3为本发明又一实施例提供的数据压缩方法的流程图;图4为本发明实施例提供的数据压缩装置的示意图;图5为本发明又一实施例提供的数据压缩装置的示意图;图6为本发明又一实施例提供的数据压缩装置的示意图;图7为本发明又一实施例提供的数据压缩装置的示意图;图8为本发明实施例提供的电子设备的示意图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。如图1所示,本发明实施例提供一种数据压缩方法,包括以下步骤:步骤s101、获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同。本实施例中,可以预先将需要压缩的各条数据封装成包括数据区、掩码区和标志位的输入数据。具体的,数据区的数据可以是ip地址、mac地址以及任何长度的需要压缩处理的其他数据。掩码区的掩码可以是任意长度与数据区的数据长度相同的数据。需要说明的是,本实施例的每条输入数据的数据和掩码的组合可以表示一条数据,也可以表示一组数据,例如,当输入数据的掩码的二进制全为1时,表示一条数据,当输入数据的掩码的二进制不全为1时,则表示一组数据。例如,若某输入数据的数据区的数据为0x8a,掩码区的掩码为0xff,则该输入数据的数据和掩码的组合包括0x8a一条数据;若某输入数据的数据区的数据为0x8a,掩码区的掩码为0xfe,则该输入数据的数据和掩码的组合包括0x8a和0x8b两条数据。标志位包括允许和拒绝,其中,可以通过“+”表示允许,通过“-”表示拒绝。具体的,输入数据的格式可以参照表1:表1输入数据格式数据区掩码区标志位0x9b(10011011)0xff(11111111)+0x8a(10001010)0xff(11111111)+0x8b(10001011)0xff(11111111)+0x8c(10001100)0xff(11111111)+0x99(10011001)0xff(11111111)-0x9a(10011010)0xff(11111111)-0x89(10001001)0xff(11111111)+0x9c(10011100)0xff(11111111)+步骤s102、根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本实施例中,可以基于多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。例如,可以将标志位、掩码相同且数据的二进制仅一位不同的两条数据压缩成一条数据,或是删除上述输入数据中冗余的输入数据等,以减少数据数量,进而减少占用的硬件资源。本发明实施例提供的数据压缩方法,通过获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本发明实施例基于多条输入数据的数据区、掩码区和标志位对多条输入数据进行压缩,可以减少输入数据的数量,解决了配置数据占用大量硬件资源的问题。可选的,在所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据之前,所述方法还包括:根据所述多条输入数据的标志位对所述多条输入数据进行分类,得到至少一个类别,其中,标志位相同的输入数据属于同一类别;分别对所述至少一个类别中的输入数据进行排序;根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据,包括:根据排序后的多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本实施例中,为了降低压缩处理的复杂度和提高压缩处理的速度,可以先对输入数据进行分类和排序,并基于分类和排序后的输入数据进行压缩处理。如图2所示,本发明实施例还提供一种数据压缩方法,包括以下步骤:步骤s201、获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同。本实施例中,可以预先将需要压缩的各条数据封装成包括数据区、掩码区和标志位的输入数据。具体的,数据区和掩码区的长度相等,与业务数据(例如,ip地址、mac地址等)长度相同。标志位表示数据为允许(即permit)还是拒绝(即deny),若无需求也可不填。若业务每条使用唯一的输入数据,则将数据写入数据区,掩码置为二进制全1;若业务数据自身携带有掩码,则将数据和掩码分别写入数据区和掩码区。步骤s202、将所述多条输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的任两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。本实施例中,若标志位相同的两条输入数据的掩码相同,并且二进制只有一个二进制位不同,则可以进行压缩。具体的,可以将数据中上述唯一不同的二进制位置0,掩码对应于该不同的二进制位的二进制位也置0,其他二进制位与上述两条输入数据的数据、掩码相同。参见上述表1,输入数据0x8a/0xff和输入数据0x8b/0xff的标志位和掩码均相同,且0x8a和0x8b的二进制只有一个二进制位不同,则可以将输入数据0x8a/0xff和输入数据0x8b/0xff压缩成一条输出数据0x8a/0xfe。为了便于描述,本实施例以下将标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据的过程简称为掩码压缩。可选的,本实施例可以先根据所述多条输入数据的标志位对所述多条输入数据进行分类,得到至少一个类别,其中,标志位相同的输入数据属于同一类别。例如,将表1中的多条输入数据中标志位为“+”的输入数据分为一类,将标志位为“-”的输入数据分为一类,得到如表2所示的输入数据。表2分类后的输入数据可选的,在按照标志位分类后,可以将各个类别的输入数据进行排序。例如,可以按照各个类别中输入数据的数据与掩码组合的最大数据值进行排序,其中,最大数据指可以通过如下公式获得:not((xandy)xory),其中,x表示数据,y表示掩码,not表示取反运算,and表示与运算,xor表示异或运算。需要说明的是,本实施例对将各个类别的输入数据进行排序的方式不做限定。例如,将表2中的各个类别的多条输入数据按照输入数据的数据与掩码组合的最大数据值进行排序后得到如表3所示的输入数据。表3排序后的输入数据数据区掩码区标志位0x89(10001001)0xff(11111111)+0x8a(10001010)0xff(11111111)+0x8b(10001011)0xff(11111111)+0x8c(10001100)0xff(11111111)+0x9b(10011011)0xff(11111111)+0x9c(10011100)0xff(11111111)+0x99(10011001)0xff(11111111)-0x9a(10011010)0xff(11111111)-本实施例在将各个类别的输入数据排序后,可以基于排序后的输入数据进行掩码压缩处理。可选的,本实施例可以先对相邻的输入数据进行掩码压缩,例如,参见表3,0x8a/0xff和0x8b/0xff的标志位和掩码均相同,且0x8a和0x8b的二进制只有一个二进制位不同,则可以将0x8a/0xff和0x8b/0xff压缩成0x8a/0xfe,如表4所示。表4相邻输入数据掩码压缩后的数据需要说明的是,本实施例在对相邻输入数据进行掩码压缩后,若压缩后得到的输出数据和其相邻的输入数据也符合掩码压缩条件(即标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位),则可以进一步将该输出数据与其相邻的输入数据再次进行掩码压缩,直至不可掩码压缩为止,也即相邻的输入数据均不满足掩码压缩条件。本实施例在对相邻的输入数据进行掩码压缩后,可以进一步对不相邻的输入数据进行掩码压缩。例如,参见表4,0x8c/0xff和0x9c/0xff的标志位和掩码均相同,且0x8c和0x9c仅一个二进制位不同,则可以将0x8c/0xff和0x9c/0xff压缩成0x8c/0xef,如表5所示。表5非相邻输入数据掩码压缩后的数据数据区掩码区标志位0x89(10001001)0xff(11111111)+0x8a(10001010)0xfe(11111110)+0x8c(10001100)0xef(11101111)+0x9b(10011011)0xff(11111111)+0x99(10011001)0xff(11111111)-0x9a(10011010)0xff(11111111)-需要说明的是,本实施例可以循环执行上述掩码压缩处理,直至表中的数据不可被掩码压缩为止,也即掩码压缩处理后的表中的输入数据均不满足掩码压缩条件。需要说明的是,本实施例通过先对输入数据分类、排序,并先对相邻输入数据进行掩码压缩,在对非相邻数据进行掩码压缩,可以降低掩码压缩处理的复杂度,提高掩码压缩处理的速度。由上可知,本实施例可以将表1中的8条输入数据压缩成6条输出数据,减少了输入数据的数量。本发明实施例的数据压缩方法,通过获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;将所述多条输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的任两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。本发明实施例可以减少输入数据的数量,解决了配置数据占用大量硬件资源的问题。如图3所示,本发明实施例还提供一种数据压缩方法,包括以下步骤:步骤s301、获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同。需要说明的是,本实施例的多条输入数据存在优先级。例如,如表6所示,一组待压缩数据按照数据区、掩码区和标志位的格式封装成多条输入数据,多条输入数据由上至下优先级依次降低,也即0x82/0xff优先级最高,0x81/0xff的优先级最低。表6输入数据格式步骤s302、根据所述多条输入数据的优先级,删除所述多条输入数据中的第一输入数据,得到第一处理数据集合,其中,所述第一输入数据为包含于所述多条输入数据中第二输入数据,且优先级低于所述第二输入数据的数据。本实施例中,一条输入数据的数据和掩码的组合可以表示一条数据,也可以表示一组数据。具体的,第一输入数据包含于第二输入数据是指第一输入数据的数据和掩码的组合所表示的数据属于第二输入数据的数据和掩码的组合所表示的数据。需要说明的是,上述第一输入数据和第二输入数据可以是多条输入数据中任两条输入数据。为了便于描述,本实施例将删除多条输入数据中的第一输入数据的过程简称为删除冗余数据处理。例如,表6中的输入数据0x80/0xfe中的0x80和0xfe的组合表示0x80和0x81两条数据,输入数据0x81/0xff中的0x81和0xff的组合表示0x81一条数据,由此可以看出,输入数据0x80/0xfe中的0x80和0xfe的组合表示的数据包括输入数据0x81/0xff中的0x81和0xff的组合表示的数据,也即输入数据0x81/0xff包含于输入数据0x80/0xfe。此外,输入数据0x81/0xff的优先级低于输入数据0x80/0xfe的优先级,则可以删除输入数据0x81/0xff,得到如表7所示的数据。表7删除冗余数据后的数据步骤s303、根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据。本实施例中,可以对删除冗余数据后得到的第一处理数据集合中的输入数据进一步进行压缩。可选的,根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据,包括:将所述第一处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。本实施例中,第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组。例如,参见表7,0x82/0xff(+)和0x80/0xfe(+)属于同一输入数据组,0x86/0xff(-)和0x87/0xff(-)属于同一输入数据组,0x86/0xfe(+)和0x83/0xff(+)属于同一输入数据组,以此类推。本实施例可以将处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据。可选的,在掩码压缩之前,可以对各个输入数据组中的输入数据进行排序。例如,将表7中的各个输入数据组的输入数据按照输入数据的数据与掩码的组合的最大数据值进行排序后得到如表8所示的数据。表8排序后的数据数据区掩码区标志位0x80(10000000)0xfe(11111110)+0x82(10000010)0xff(11111111)+0x86(10000110)0xff(11111111)-0x87(10000111)0xff(11111111)-0x83(10000011)0xff(11111111)+0x86(10000110)0xfe(11111110)+0x84(10000100)0xfe(11111110)-0x84(10000100)0xfc(11111100)+0x88(10001000)0xff(11111111)+0x89(10001001)0xff(11111111)+0x8a(10001010)0xfe(11111110)+本实施例可以基于排序后的输入数据进行掩码压缩。具体的,可以将处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据。可选的,可以先对相邻的输入数据进行掩码压缩,再对非相邻的输入数据进行掩码压缩。例如,参见表8,可将0x86/0xff(-)和0x87/0xff(-)压缩成0x86/0xfe(-)。可选的,本实施例在将处于同一输入数据组的输入数据进行掩码压缩之后,可以进一步对掩码压缩处理后的输入数据进行删除冗余数据处理。例如,将表8中的0x86/0xff(-)和0x87/0xff(-)压缩成0x86/0xfe(-)后,进一步对表8中的数据进行删除冗余数据处理,得到如表9所示的数据。表9掩码压缩和删除冗余数据后的数据由上可知,本实施例通过对多条输入数据进行删除冗余数据处理和掩码压缩,将表6中12条输入数据压缩成7条,减少了输入数据数量。可选的,所述根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据,包括:将所述第一处理数据集合中目标输入数据移至第一输入数据组内,得到第二处理数据集合,其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述目标输入数据为第二输入数据组内与第三输入数据组内的输入数据不存在交集的输入数据,所述第一输入数据组和所述第二输入数据组为所述第一处理数据集合中标志位相同的相邻两组数据,所述第二输入数据组与所述第三输入数据组为所述第一处理数据集合中标志位不同的相邻两组数据,所述第二输入数据组的优先级低于所述第三输入数据组的优先级,所述第三输入数据组的优先级低于所述第一输入数据组的优先级;将所述第二处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。本实施例中,在对多条输入数据删除冗余数据之后,如果低优先级的输入数据组(也即第二输入数据组)内的某条输入数据与高优先级的输入数据组(第三输入数据组)内的输入数据不存在交集(也即不相交),则可将该条输入数据移到前一组高优先级且标志位相同的输入数据组(也即第一输入数据组)内,从而可以将该条输入数据与前一组高优先级且标志位相同的输入数据组内的输入数据进行掩码压缩。其中,两条输入数据相交是指两条输入数据的标志位不同,且两条输入数据的数据和掩码的组合所表示的数据至少存在一条相同。例如,输入数据0x86/0xfe(+)和输入数据0x87/0xff(-)相交,输入数据0x86/0xff(+)和输入数据0x87/0xff(-)则不相交。为了便于描述,本实施例以下将目标输入数据移至第一输入数据组内的过程简称为移位处理。可选的,本实施例在对目标输入数据进行移位之前,可以先判断目标输入数据是否可与第一输入数据组内的输入数据进行掩码压缩,若第一输入数据组内存在可与目标输入数据进行掩码压缩的输入数据,则可以将目标输入数据移至第一输入数据组内。以下以表9中数据为例进行说明:0x80/0xfe(+)和0x82/0xff(+)属于输入数据组a,0x86/0xfe(-)属于输入数据组b,0x83/0xff(+)属于输入数据组c,0x84/0xfe(-)属于输入数据组d,0x84/0xfc(+)和0x88/0xfc(+)属于输入数据组e,由于输入数据组c中0x83/0xff(+)和输入数据组b中0x86/0xfe(-)不相交,且0x83/0xff(+)和输入数据组a中0x82/0xff(+)可掩码压缩,则将0x83/0xff(+)移至输入数据组a内,输入数据组e中0x88/0xfc(+)与输入数据组d中0x84/0xfe(-)和输入数据组b中0x86/0xfe(-)均不相交,则可将0x88/0xfc(+)移至输入数据组a内,得到如表10所示的数据。表10移位处理后的数据本实施例在对输入数据进行移位处理之后,将移位处理后处于同一输入数据组的输入数据进行掩码压缩,也即将所述第二处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据。需要说明的是,在进行掩码压缩之前,可以先对移位处理后的输入数据进行组内排序,也即分别对各个输入数据组的输入数据进行排序。在掩码压缩处理之后,可进一步进行删除冗余数据处理,最后输出处理后的数据。例如,将表10中所示的输入数据经过排序、掩码压缩、删除冗余数据处理之后,最终输出如表11所示的数据。表11输出结果数据区掩码区标志位0x80(10000000)0xf4(11110100)+0x84(10000100)0xfc(11111100)-需要说明的是,本实施例也可以在对输入数据进行删除冗余数据处理之后,先对各个数据组的数据进行掩码压缩,再对掩码压缩后的数据进行移位处理,以降低处理复杂度和减少耗时。由上可知,本实施例通过对多条输入数据进行删除冗余数据处理、掩码压缩、移位处理并对移位处理后的数据进行掩码压缩、删除冗余数据处理,将表6中12条输入数据压缩成2条,减少了输入数据数量。需要说明的是,本实施例上述各个处理过程(例如,删除冗余数据处理、掩码压缩、移位处理)可以按不同的顺序执行,也可以多次执行,本实施例对此不作限定。本发明实施例在对输入数据进行删除冗余数据处理、掩码压缩处理和移位处理等对输入数据进行压缩处理后,可将输出结果进行存储并配置转发面处理器等,可以减少资源占用,在硬件指标一定的情况下提高利用率和技术指标。如图4所示,本发明实施例提供一种数据压缩装置,该数据压缩装置40包括:获取模块41,用于获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;压缩模块42,用于根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。可选的,参见图5,所述压缩模块42包括:第一压缩单元421,用于将所述多条输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的任两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,参见图6,所述压缩模块42包括:删除单元422,用于根据所述多条输入数据的优先级,删除所述多条输入数据中的第一输入数据,得到第一处理数据集合,其中,所述第一输入数据为包含于所述多条输入数据中第二输入数据,且优先级低于所述第二输入数据的数据;第二压缩单元423,用于根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据。可选的,所述第二压缩单元423具体用于:将所述第一处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,所述第二压缩单元423具体用于:将所述第一处理数据集合中目标输入数据移至第一输入数据组内,得到第二处理数据集合,其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述目标输入数据为第二输入数据组内与第三输入数据组内的输入数据不存在交集的输入数据,所述第一输入数据组和所述第二输入数据组为所述第一处理数据集合中标志位相同的相邻两组数据,所述第二输入数据组与所述第三输入数据组为所述第一处理数据集合中标志位不同的相邻两组数据,所述第二输入数据组的优先级低于所述第三输入数据组的优先级,所述第三输入数据组的优先级低于所述第一输入数据组的优先级;将所述第二处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,参见图7,所述装置还包括:分类模块43,用于在所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据之前,根据所述多条输入数据的标志位对所述多条输入数据进行分类,得到至少一个类别,其中,标志位相同的输入数据属于同一类别;排序模块44,用于分别对所述至少一个类别中的输入数据进行排序;所述压缩模块42具体用于:根据排序后的多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本发明实施例的数据压缩装置40,通过获取模块41获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;压缩模块42根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本发明实施例基于多条输入数据的数据区、掩码区和标志位对多条输入数据进行压缩,可以减少输入数据的数量,解决了配置数据占用大量硬件资源的问题。参见图8,本发明实施例还通过一种电子设备,该电子设备80包括存储器81、处理器82及存储在所述存储器81上并可在所述处理器82上运行的计算机程序811,所述处理器82执行所述程序811时实现如下步骤:获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。可选的,所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据,包括:将所述多条输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的任两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,所述多条输入数据存在优先级,所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据,包括:根据所述多条输入数据的优先级,删除所述多条输入数据中的第一输入数据,得到第一处理数据集合,其中,所述第一输入数据为包含于所述多条输入数据中第二输入数据,且优先级低于所述第二输入数据的数据;根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据。可选的,所述根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据,包括:将所述第一处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,所述根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据,包括:将所述第一处理数据集合中目标输入数据移至第一输入数据组内,得到第二处理数据集合,其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述目标输入数据为第二输入数据组内与第三输入数据组内的输入数据不存在交集的输入数据,所述第一输入数据组和所述第二输入数据组为所述第一处理数据集合中标志位相同的相邻两组数据,所述第二输入数据组与所述第三输入数据组为所述第一处理数据集合中标志位不同的相邻两组数据,所述第二输入数据组的优先级低于所述第三输入数据组的优先级,所述第三输入数据组的优先级低于所述第一输入数据组的优先级;将所述第二处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,在所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据之前,所述方法还包括:根据所述多条输入数据的标志位对所述多条输入数据进行分类,得到至少一个类别,其中,标志位相同的输入数据属于同一类别;分别对所述至少一个类别中的输入数据进行排序;所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据,包括:根据排序后的多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中数据压缩方法。本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取介质中,该程序在执行时,包括以下步骤:获取多条输入数据,其中,所述多条输入数据中每条输入数据均包括数据区、掩码区和标志位,所述数据区的数据长度和所述掩码区的掩码长度相同;根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。可选的,所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据,包括:将所述多条输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的任两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,所述多条输入数据存在优先级,所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据,包括:根据所述多条输入数据的优先级,删除所述多条输入数据中的第一输入数据,得到第一处理数据集合,其中,所述第一输入数据为包含于所述多条输入数据中第二输入数据,且优先级低于所述第二输入数据的数据;根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据。可选的,所述根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据,包括:将所述第一处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,所述根据所述第一处理数据集合中的输入数据的数据区、掩码区和标志位对所述第一处理数据集合中的输入数据进行压缩,得到输出数据,包括:将所述第一处理数据集合中目标输入数据移至第一输入数据组内,得到第二处理数据集合,其中,所述第一处理数据集合中标志位相同且连续排列的输入数据处于同一输入数据组,所述目标输入数据为第二输入数据组内与第三输入数据组内的输入数据不存在交集的输入数据,所述第一输入数据组和所述第二输入数据组为所述第一处理数据集合中标志位相同的相邻两组数据,所述第二输入数据组与所述第三输入数据组为所述第一处理数据集合中标志位不同的相邻两组数据,所述第二输入数据组的优先级低于所述第三输入数据组的优先级,所述第三输入数据组的优先级低于所述第一输入数据组的优先级;将所述第二处理数据集合中处于同一输入数据组的输入数据中标志位和掩码区的掩码均相同,且数据区的数据的二进制仅存在一个不同的二进制位的两条输入数据压缩成一条输出数据;其中,所述输出数据的数据区的数据的目标二进制位为0,所述输出数据的数据区的数据除所述目标二进制位之外的二进制位分别与所述两条输入数据的数据区的数据对应的二进制位相同,所述输出数据的掩码区的掩码的目标二进制位为0,所述输出数据的掩码区的掩码除所述目标二进制位之外的二进制位分别与所述两条输入数据的掩码区的掩码对应的二进制位相同,所述目标二进制位为对应于所述不同的二进制位的二进制位。可选的,在所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据之前,所述方法还包括:根据所述多条输入数据的标志位对所述多条输入数据进行分类,得到至少一个类别,其中,标志位相同的输入数据属于同一类别;分别对所述至少一个类别中的输入数据进行排序;所述根据所述多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据,包括:根据排序后的多条输入数据的数据区、掩码区和标志位对所述多条输入数据进行压缩,得到输出数据。所述的存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1