CN111064471A - 数据处理方法、装置及电子设备 - Google Patents
数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111064471A CN111064471A CN201811204023.9A CN201811204023A CN111064471A CN 111064471 A CN111064471 A CN 111064471A CN 201811204023 A CN201811204023 A CN 201811204023A CN 111064471 A CN111064471 A CN 111064471A
- Authority
- CN
- China
- Prior art keywords
- data
- operation result
- restored
- zero
- compressed
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 41
- 238000007906 compression Methods 0.000 claims abstract description 109
- 230000006835 compression Effects 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000006837 decompression Effects 0.000 claims description 41
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 14
- 238000013144 data compression Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请实施例提供一种数据处理方法、装置及电子设备,其中方法包括:在待压缩的数据中选择一个参考数据并存储所述参考数据;以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。本申请实施例提供的数据处理方法、装置及电子设备,可以在待压缩的数据中选择一个参考数据并存储所述参考数据,以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩,能够实现并行压缩,有效提高压缩的效率,并且,只需要存储一个参考数据,能够在提高压缩效率的基础上有效保证压缩率,节省数据存储空间,提高传输效率。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据处理方法、装置及电子设备。
背景技术
随着电子数据的不断增加和设备处理能力的不断增强,数据的压缩和解压在各个领域也得到了越来越广泛的应用。数据压缩和解压能够在不丢失有用信息的前提下,按照特定的编码机制减少数据量,从而有效减少数据的存储空间,提高传输和存储的效率。
现有技术中,数据的压缩解压过程往往存在耗时较长、效率较低的问题,影响业务的实时处理。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法、装置及电子设备,以提高数据压缩或解压的效率。
第一方面,本申请实施例提供一种数据处理方法,包括:
在待压缩的数据中选择一个参考数据并存储所述参考数据;
以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
第二方面,本申请实施例提供一种数据处理方法,包括:
获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果;
根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
第三方面,本申请实施例提供一种数据处理装置,包括:
选择模块,用于在待压缩的数据中选择一个参考数据并存储所述参考数据;
压缩模块,用于以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
第四方面,本申请实施例提供一种数据处理装置,包括:
获取模块,用于获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果;
解压模块,用于根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
第五方面,本申请实施例提供一种电子设备,包括第一处理器和第一存储器,所述第一存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第一处理器执行时实现上述第一方面中的数据处理方法。该电子设备还可以包括第一通信接口,用于与其它设备或通信网络通信。
第六方面,本申请实施例提供一种电子设备,包括第二处理器和第二存储器,所述第二存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第二处理器执行时实现上述第二方面中的数据处理方法。该电子设备还可以包括第二通信接口,用于与其它设备或通信网络通信。
本申请实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面或第二方面中的数据处理方法。
本申请实施例提供的数据处理方法、装置及电子设备,可以在待压缩的数据中选择一个参考数据并存储所述参考数据,以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩,能够实现并行压缩,有效提高压缩的效率,并且,只需要存储一个参考数据,能够在提高压缩效率的基础上有效保证压缩率,节省数据存储空间,提高传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的数据处理方法实施例一的流程示意图;
图2为本申请实施例提供的数据处理方法实施例二的流程示意图;
图3为本申请实施例提供的一种数据压缩示意图;
图4为本申请实施例提供的数据处理方法实施例三的流程示意图;
图5为本申请实施例提供的一种数据解压示意图;
图6为本申请实施例提供的一种数据压缩和解压的总体示意图;
图7为本申请实施例提供的一种数据处理装置的结构示意图;
图8为本申请实施例提供的另一种数据处理装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图;
图10为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
下面结合如下的方法实施例以及附图对本申请实施例提供的数据处理方法的实现过程进行介绍。另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本申请实施例提供的数据处理方法实施例一的流程示意图。本实施例中方法的执行主体可以为任意电子设备,尤其可以为具有数据处理功能的电子设备。如图1所示,本实施例中的数据处理方法,可以包括:
步骤101、在待压缩的数据中选择一个参考数据并存储所述参考数据。
步骤102、以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
本申请实施例中,所述待压缩的数据可以是任何需要进行压缩的数据。可选的,所述待压缩的数据可以为时序数据,时序数据是指随时间变化的数据序列。为了便于描述,以下以时序数据为例来对本申请实施例中的方案进行描述。
时序数据通常由一系列数据组成,相邻时间的数据通常比较接近。在对数据进行压缩时,可以将当前数据与参考数据进行一定的操作后产生一个结果,这个结果相对于当前数据本身来说占用的存储空间较小,仅存储参考数据和这个占用空间较小的结果即可,从而实现数据压缩功能。
具体的,待压缩的时序数据中包括多个数据,从多个数据中可以选取一个数据作为参考数据。可选的,可以将多个数据中的第一个数据作为参考数据,也可以将多个数据中的最后一个数据作为参考数据。
在选定参考数据后,可以以所述参考数据作为参考,对其它数据进行并行压缩。本申请实施例中,可以通过并行处理的方式,采用任意的压缩规则实现对数据的压缩。
可选的,以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩,可以包括:并行处理所述待压缩的数据中的其它数据,获取每个数据与相邻数据的运算结果并存储。
其中,对于每个数据来说,相邻数据可以是其前一个数据,也可以是其后一个数据。本领域技术人员可以理解的是,是以前一个数据作为所述相邻数据,还是以后一个数据作为所述相邻数据,可以由参考数据的位置来确定。
在一种可选的实施方式中,所述参考数据可以为所述时序数据中的第一个数据,相应的,获取每个数据与相邻数据的运算结果并存储,可以包括:获取每个数据与前一个数据的运算结果并存储。
例如,时序数据包括:P0、P1、P2、P3、……、Pn。其中Pi为时序数据中的第i个数据。以P0作为参考数据,对其余数据进行并行处理,得到Pi对应的运算结果即Pi与前一个数据P(i-1)之间的运算结果。
本申请实施例中的运算,可以是指任意能够表现相邻两数据差异的运算,例如,可以为异或运算。也就是说,Pi对应的运算结果Ci=Pi xor P(i-1)。由于相邻数据之间的差异比较小,因此数据Pi对应的运算结果Ci往往小于Pi本身,因此压缩后的数据占用的存储空间会减少。
在另一种可选的实施方式中,所述参考数据可以为所述时序数据中的最后一个数据,相应的,获取每个数据与相邻数据的运算结果并存储,可以包括:获取每个数据与后一个数据的运算结果并存储。
在又一种可选的实施方式中,所述参考数据可以为所述时序数据中的任意一个数据,相应的,获取每个数据与相邻数据的运算结果并存储,可以包括:针对位于所述参考数据前面的每个数据,获取该数据与后一个数据的运算结果并存储;针对位于所述参考数据后面的每个数据,获取该数据与前一个数据的运算结果并存储。
本申请实施例中,并行处理所用到的线程的个数可以小于或等于其它数据的个数。
假设并行处理能力为4,例如共有4个线程A、B、C、D,对数据进行处理,且以P0作为参考数据,那么首先4个线程分别处理P1至P4,具体的,可以线程A处理P1,线程B处理P2,线程C处理P3,线程D处理P4。对P1至P4,分别计算对应的运算结果,然后存储运算结果。P1至P4处理完毕后,再对P5至P8进行处理,以此类推,直至将全部数据处理完毕,即得到压缩后的数据。
在其它可选的实施方式中,也可以不按照顺序来进行处理,例如,先处理P5至P8,再处理P1至P4,但是,不按照顺序进行处理可能需要更多的存储空间,会损失一定的压缩率。
在数据量较大的情况下,也可以将待压缩的原始数据拆分为多个数据块,每个数据块包括多个待压缩的数据。针对每个数据块,可以采用步骤101至步骤102的方法来实现数据压缩。
相应的,步骤101可以包括:针对每个数据块,在待压缩的数据中选择一个参考数据并存储所述参考数据;步骤102可以包括:针对每个数据块,以所述数据块中的参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
例如,可以将原始数据拆分为两个数据块。第一个数据块的参考数据为第一个数据,第二个数据块的参考数据为最后一个数据,并行处理第一个数据块中的多个数据和第二个数据块中的多个数据,针对第一个数据块中的数据计算其与前一数据的运算结果,针对第二个数据块中的数据计算其与后一数据的运算结果,只要能够实现全部数据有迹可循即可。
在对数据进行压缩完毕后,可以根据每个数据对应的运算结果,来对数据进行还原,实现数据解压功能。具体的,可以利用压缩时采用的运算的逆操作来实现数据的解压。
可选的,可以根据待还原的数据与已经被还原的数据之间的每个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果,根据所述待还原的数据与所述已经被还原的数据之间的运算结果以及所述被还原的数据,计算待还原数据对应的原始数据。
例如,根据P1与P0之间的运算结果以及P0,可以计算得到P1;根据P2与P1之间的运算结果以及P1,可以计算得到P2,或者,根据P2与P1之间的运算结果、根据P1与P0之间的运算结果以及P0,可以计算得到P2。
解压的操作可以是串行实现的,也可以是并行实现的,本申请实施例对此不作限制。优选的是,可以采用并行的方式实现解压,能够有效提高解压的效率。压缩时,每个数据的参考为相邻的前一或后一个数据,所以压缩效率很高,且最终数据中只有一个参考数据,因此压缩率与串行压缩方式相同。另外,通过并行处理方式,同时对多个数据进行压缩或解压,可以取得很高的压缩性能。
综上,本实施例提供的数据处理方法,可以在待压缩的数据中选择一个参考数据并存储所述参考数据,以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩,能够实现并行压缩,有效提高压缩的效率,并且,只需要存储一个参考数据,能够在提高压缩效率的基础上有效保证压缩率,节省数据存储空间,提高传输效率。
图2为本申请实施例提供的数据处理方法实施例二的流程示意图。本实施例是在上述实施例提供的技术方案的基础上,通过并行拼接的方式来实现数据压缩。如图2所示,本实施例中的数据处理方法,可以包括:
步骤201、在待压缩的数据中选择一个参考数据并存储所述参考数据。
步骤202、判断是否还有待处理的数据。
若没有待处理的数据,则结束流程;若有待处理的数据,则执行步骤203和步骤204。
步骤203、获取待处理的数据组,所述数据组包括其它数据中的待处理的前预设个数个数据。
步骤204、并行处理该数据组中的多个数据,获取每个数据与前一个数据的运算结果并存储。在对数据组处理完毕后,重新执行步骤202。
本申请实施例中,通过步骤202至步骤204可以实现以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
以下以所述待压缩的数据为时序数据、所述参考数据为所述时序数据中的第一个数据为例进行说明。
在对数据处理的过程中,可以首先对数据进行并行压缩,每个数据产生一定长度的压缩数据和一些标记位,存储到对应的存储空间中,然后通过并行拼接的方式,将同时并行处理的不同数据的标记位和对应的压缩数据进行拼接,产生一段连续的压缩数据。其中,每个数据对应的压缩数据可以是该数据与前一个数据的运算结果。
图3为本申请实施例提供的一种数据压缩示意图。如3所示,时序数据包括:P0、P1、P2、P3、P4、……。以P0作为参考数据,对其余数据进行并行处理。假设并行处理能力为4,所述预设个数也为4,首先并行处理P1至P4,然后并行处理P5至P8,以此类推,直至全部数据处理完毕,为了便于描述,将并行处理的预设个数个数据记为一个数据组。
具体的,在对数据进行处理的过程中,可以并行计算所述数据组中每个数据与前一个数据的运算结果,确定所述运算结果中的非零部分;存储所述非零部分以及用于指示所述非零部分所在位置的指示信息。
可选的,可以并行计算所述数据组中每个数据与前一个数据的运算结果,判断所述运算结果是否为零;若不为零,则确定所述运算结果中的非零部分、非零部分需要占用的存储空间以及用于指示非零部分所在位置的指示信息;根据各个运算结果的非零部分需要占用的存储空间中的最大值,计算最大存储空间;存储所述数据组对应的压缩数据,其中压缩数据包括:所述数据组中每个数据的运算结果是否为零的判断结果、运算结果不为零的数据对应的指示信息、最大存储空间、运算结果不为零的数据的运算结果中的非零部分,其中每个非零部分占用的空间为所述最大存储空间。
其中,所述数据与前一个数据的运算结果可以为所述数据与前一个数据的异或结果,所述运算结果中的非零部分为所述运算结果中除去前后的零字节后的部分,所述指示信息可以为所述非零部分还原为相应的运算结果需要左移或右移的字节数。
参见图3,可以首先将第0个数据P0直接存储到压缩数据中,作为解压时的参考数据。然后,依次对后面各个数据进行压缩处理。
以异或压缩算法为例说明,假设每个数据的大小为8字节,将每个数据与其前一个数据进行异或,得到的异或结果也为8个字节,然后将异或结果以trailing-zero方式存储到压缩数据中。
具体的,如果8个字节的异或结果中前面有m个零字节,后面有n个零字节,那么中间的8-m-n个字节就是运算结果的非零部分,需要存储的就是这8-m-n个字节的数据。在每个字节中,只要有一位是非零的,那么该字节就是非零字节。例如,P1对应的运算结果=P1与P0的异或结果=00000000 00000000 00000000 00000000 00110000 1000000100000000 00000000,第1至4字节均为0,第7至8字节也均为0,只有第5字节和第6字节是非零的,那么可以舍弃第1、2、3、4、7、8六个字节,仅保存第5字节和第6字节共16位。
在确定运算结果后的非零部分后,数据对应的运算结果可以通过如下参数来表示:运算结果的非零部分d;l(3bits)表示d的长度;f(4bits)包含f(0)(1bit)和f(1:3)(3bits),其中f(0)表示运算结果是否为0,如果运算结果为0(即数据与前一数据的8个字节均相同),那么就不需要存储d和f(1:3);f(1:3)表示d还原为运算结果时需要左移的字节数,即运算结果=d<<(f(1:3)*8),或者d=运算结果>>(f(1:3)*8)。
左移的字节数可以等于运算结果中非零部分右边的零占用的字节数。例如,P1的运算结果中,第5字节和第6字节是非零的,右边的第7字节和第8字节均为0,那么非零部分右边的零占用2字节,则左移的字节数可以为2,也就是说,非零部分左移两个字节可以得到运算结果。
在得到数据组中的每个数据对应的参数后,可以保存数据组中的各个数据的参数,从而实现数据组的压缩,下面举例说明。假设P1异或P0=00001100,P2异或P1=00001000,P3异或P2=00100100,P4异或P3=00000100,这里为了描述方便,每一个数字代表一个字节是否非0。
也就是说,P1的运算结果中第5位和第6位是非零字节,对应的非零部分为第5字节和第6字节,长度为两个字节;P2的运算结果中第5字节是非零的,对应的非零部分为第5字节,长度为一个字节;P3的运算结果中第3字节和第6字节是非零的,对应的非零部分为第3至第6字节,长度为四个字节;P4的运算结果中第6字节是非零的,对应的非零部分为第6字节,长度为一个字节。
由此可见,每个数据对应的运算结果均不为零,且非零部分需要占用的空间分别为两个字节、一个字节、四个字节、一个字节,最大值为四个字节,则最大存储空间lmax=4。
然后,存储P1至P4对应的压缩数据,其中压缩数据包括:每个数据的运算结果是否为零的判断结果f(0)、运算结果不为零的数据对应的指示信息f(1:3)、最大存储空间lmax、运算结果不为零的数据的运算结果中的非零部分d,其中每个非零部分d占用的空间为所述最大存储空间。通过压缩数据可以保存运算结果的全部信息,使得数据能够被正确解压。
具体的,可以将四个数据产生的非零部分和标记位f(0)、f(1:3)、lmax进行拼接,将四个数据的标记位f拼接到一起放在最前面,取四个数据对应的l的最大值lmax作为四个数据对应的d的存储空间大小,即四个数据对应的d的存储空间相等且均为lmax。然后存储四个数据对应的d,每个d占用l字节(不足l字节的前面补0),依次类推,将剩下的所有数据压缩完成。
如图3所示,P1、P2、P3和P4对应的运算结果分别为C1、C2、C3、C4,对应的f分别为f1、f2、f3、f4,对应的l分别为l1、l2、l3、l4,对应的d分别为d1、d2、d3、d4。在存储时,可以将f和l存储在前面,将d存储在后面。
如果某一个数据对应的f(0)表示该数据的运算结果为零,那么可以不存储该数据对应的f(1:3)和d,节省存储空间。
在进行存储时,四个线程可以把计算的结果传输给其中某一个线程,由该线程统一进行存储,也可以四个线程相互交换f(0)和l,这样,每个线程都可以知道自己的结果应该存储到哪个位置,各自进行存储操作即可。
在其它可选的实施方式中,也可以不存储f(0),全部数据的运算结果都用f(1:3)、lmax和d来表示。
具体的,可以并行计算所述数据组中每个数据与前一个数据的运算结果,确定所述运算结果中的非零部分、非零部分需要占用的存储空间以及用于指示非零部分所在位置的指示信息;根据各个运算结果的非零部分需要占用的存储空间中的最大值,计算最大存储空间;存储所述数据组对应的压缩数据,其中压缩数据包括:所述数据组中每个数据对应的指示信息、最大存储空间、每个数据的运算结果中的非零部分,其中每个数据的运算结果中的非零部分占用的空间为所述最大存储空间。
除了以上方法以外,还可以通过其它的方式来存储运算结果,例如,可以通过mask的方式,不存储lmax+d,而是针对每个数据存储控制字节和非零字节。
具体的,可以为每一个数据对应的运算结果增加一个控制字节,控制字节用于表示运算结果中非零字节的位置,例如,对于P1来说,非零字节为第5字节和第6字节,那么P1对应的控制字节为00001100,然后,存储第5字节和第6字节即可;对于P3来说,控制字节为00100100,相应的,存储第3字节和第6字节即可,无需存储中间的第4字节和第5字节。
如果待压缩的数据中除了参考数据以外的其它全部数据的个数不为4的倍数,那么可能存在最后一组数据不足4个的情况,此时,可以通过补零的方式将最后一组数据补齐4个,使得解压时能够正确还原出最后的数据,或者,可以在压缩数据中存储全部数据的个数,解压时根据个数来判断最后一组数据的个数,从而正确进行解压。
综上,本实施例提供的数据处理方法,能够通过并行的方式对多个数据进行处理,处理时多个数据共用一个lmax,并且保存运算结果是否为零的判断结果以及非零部分需要移动的字节数,能够节省存储空间,有效降低数据压缩率,减少数据存储空间,提高数据传输效率。
在对数据压缩完成后,还可以对压缩数据进行解压,解压具体可以是指:根据压缩后的数据中的参考数据以及其它数据对应的压缩结果,还原所述其它数据,其中,所述压缩结果包括其它数据中的每个数据与相邻数据的运算结果。可以采用串行的方式进行解压,也可以采用并行的方式进行解压。
可选的,根据所述压缩后的数据中的参考数据以及其它数据对应的压缩结果,还原所述其它数据,可以包括:根据待还原的数据与已经被还原的数据之间的各个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果,其中,所述已经被还原的数据为所述参考数据或者其它数据中已经被还原的数据;根据所述待还原的数据与所述已经被还原的数据之间的运算结果以及所述被还原的数据,计算待还原数据对应的原始数据。
可选的,根据所述待还原的数据与所述已经被还原的数据之间的运算结果以及所述被还原的数据,计算待还原数据对应的原始数据,可以包括:将所述待还原的数据与所述已经被还原的数据之间的运算结果与所述被还原的数据进行压缩运算的逆操作,得到待还原数据对应的原始数据。
对压缩数据进行解压的方法可以参照实施例三提供的方案。
图4为本申请实施例提供的数据处理方法实施例三的流程示意图。本实施例用于实现数据的解压。如图4所示,本实施例中的数据处理方法,可以包括:
步骤401、获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果。
其中,所述其它数据对应的压缩结果可以包括其它数据中的每个数据与相邻数据的运算结果。
步骤402、根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
具体的,所述压缩数据可以是按照串行方式进行压缩的,也可以是按照并行方式进行压缩的。优选的是,本实施例中的方法,可以用于对按照上述任一实施方式实现压缩的数据进行解压。在解压的时候,需要知道数据被压缩时的规则,例如参考数据是哪一个、同时并行处理多少个数据、指示信息用于指示左移还是右移等等。
可选的,所述压缩数据为时序数据对应的压缩数据,所述参考数据为所述时序数据中的第一个数据,每个数据与相邻数据的运算结果为每个数据与前一个数据的运算结果。
相应的,步骤402中的根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据,可以包括:获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;根据已经被还原的数据,并行处理该数据组中的多个数据对应的压缩结果,还原所述数据组中的数据;其中,所述已经被还原的数据为所述参考数据或者其它数据中已经被还原的数据。
其中,根据已经被还原的数据,并行处理该数据组中的多个数据对应的压缩结果,还原所述数据组中的数据,可以包括:并行处理所述数据组中的多个数据对应的压缩结果,获取所述数据组中每个待还原的数据与相邻数据的运算结果;根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据。
在一种可选的实施方式中,所述数据组对应的压缩数据可以包括所述数据组中每个数据与相邻数据的运算结果的非零部分以及用于指示非零部分所在位置的指示信息。相应的,获取待还原的数据与相邻数据的运算结果,可以包括:获取待还原的数据对应的运算结果中的非零部分以及用于指示所述非零部分所在位置的指示信息;根据所述非零部分以及用于指示所述非零部分所在位置的指示信息,计算所述待还原的数据与相邻数据的运算结果。
与前述各实施例类似,所述数据与前一个数据的运算结果可以为所述数据与前一个数据的异或结果,所述运算结果中的非零部分可以为所述运算结果中除去前后的零字节后的部分,所述指示信息可以为所述非零部分还原为相应的运算结果需要左移或右移的字节数。
例如,对于某一数据Pi来说,可以从压缩数据中读取出Pi对应的非零部分以及对应的指示信息,假如非零部分为00110011 11001100,指示信息表示需要向左移动两字节,则Pi对应的运算结果为:00110011 11001100 00000000 00000000。
在另一种可选的实施方式中,所述数据组对应的压缩数据可以包括所述数据组中每个数据的运算结果是否为零的判断结果、不为零的运算结果中的非零部分、运算结果不为零的数据对应的用于指示非零部分所在位置的指示信息、最大存储空间,其中每个非零部分占用的空间为所述最大存储空间。
相应的,获取待还原的数据与相邻数据的运算结果,可以包括:若所述待还原的数据对应的判断结果为是,则所述待还原的数据对应的运算结果为零;若所述待还原的数据对应的判断结果为否,则获取所述待还原的数据对应的指示信息和最大存储空间;根据最大存储空间以及所述数据组中的其它数据的判断结果,确定所述待还原的数据的运算结果中的非零部分所在的存储空间;根据所述待还原的数据对应的运算结果中的非零部分所在的存储空间,确定运算结果中的非零部分;根据所述运算结果中的非零部分和所述指示信息,计算所述待还原的数据对应的运算结果。
图5为本申请实施例提供的一种数据解压示意图。如5所示,完整的压缩数据包括参考数据P0以及每个数据组对应的压缩结果,由于压缩时是四个数据为一组进行压缩的,所以在解压时,也是四个数据为一组进行解压。首先并行处理P1至P4的压缩结果,然后并行处理P5至P8的压缩结果,以此类推,直至全部数据解压完毕。并行解压时,每个并行处理线程读取一个数据对应的压缩结果,然后解压产生原始数据。
参见图5,每个并行处理线程解压一个数据,首先读出数据对应的标记位f和长度lmax,然后根据长度lmax计算出各自对应的非零部分的存储地址,将非零部分d读出。然后,可以根据f对d进行移位操作,将压缩时得到的运算结果恢复出来,即异或结果C=d<<(f(1:3)*8)。
如图5所示,P1、P2、P3和P4对应的f分别为f1、f2、f3、f4,对应的l分别为l1、l2、l3、l4均=lmax,对应的d分别为d1、d2、d3、d4,对应的运算结果分别为C1、C2、C3、C4。
如果某一个数据对应的f(0)为0,表示该数据对应的运算结果为零,那么就不再需要读取f(1:3)、l和d了。如果对应的f(0)为1,表示该数据对应的运算结果为不为零,那么可以进一步读取f(1:3)和l,确定d对应的存储空间,并将d读取出来。根据读取到的d和f(1:3),可以确定对应的运算结果。
在又一种可选的实施方式中,所述数据组对应的压缩数据可以包括所述数据组中每个数据与相邻数据的运算结果的非零部分、用于指示非零部分所在位置的指示信息、最大存储空间,其中每个数据对应的运算结果中的非零部分占用的空间为所述最大存储空间。在这种实施方式中,省略了对判断结果的存储。
相应的,获取待还原的数据与相邻数据的运算结果,可以包括:获取待还原的数据对应的指示信息和最大存储空间;根据最大存储空间,确定每个数据对应的运算结果中的非零部分所在的存储空间;根据每个数据对应的运算结果中的非零部分所在的存储空间,确定运算结果中的非零部分;根据所述运算结果中的非零部分和所述指示信息,计算所述待还原的数据与相邻数据的运算结果。
在获取到数据对应的运算结果以后,可以根据运算结果来对数据进行还原。根据P1、P2、P3、P4对应的运算结果C1、C2、C3、C4,可以还原出P1、P2、P3、P4的原始数据。
可选的,根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据,可以包括:根据待还原的数据与已经被还原的数据之间的各个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果;将所述待还原的数据与所述已经被还原的数据之间的运算结果与所述已经被还原的数据进行压缩运算的逆操作,得到待还原数据对应的原始数据。
具体的,在每个线程获取数据对应的运算结果后,不同并行线程之间可以进行数据交换,每个线程将运算结果传递到其后面的并行线程,使得后面的每个线程可以计算出对应的数据与已经被还原的数据之间的运算结果。
所述已经被还原的数据可以为参考数据P0,如图5所示,根据待还原的数据Pi与已经被还原的数据P0之间的各个数据对应的运算结果,可以计算所述待还原的数据Pi与所述已经被还原的数据P0之间的运算结果Di,这里将Pi与P0之间的运算结果Di记为Pi对应的预操作数据,P1、P2、P3和P4对应的预操作数据分别为D1、D2、D3、D4。
可以理解的是,在P3对应的压缩数据进行处理时,需要知道P1至P2对应的运算结果,才能得到P3与参考数据P0之间的运算结果。以异或运算为例,P3与P0之间的异或结果D3=C1xor C2xor C3。
在得到数据Pi与P0之间的运算结果后,由于P0为参考数据,并没有被压缩,因此可以根据Pi与P0之间的运算结果以及P0,确定Pi对应的原始数据。可选的,可以将Pi与P0之间的运算结果与参考数据P0进行逆操作,得到Pi的原始数据,如果压缩时进行的运算为异或,由于异或的逆操作还是异或,因此Pi=Di xor P0,其中Di为Pi与P0之间的异或结果,如P3=D3xor P0。
在对P1至P4处理完毕后,可以按照类似的方法,对P5至P8进行处理,以此类推,直至全部数据被处理完毕。
除了以P0作为参考以外,还可以以其它已经被还原出来的数据作为参考,例如,在对P5进行还原时,P4已经被还原完毕,此时可以计算P5与P4之间的异或结果,根据P4与P5之间的异或结果以及被还原出的P4确定P5的值。
综上,本实施例提供的数据处理方法,可以根据压缩数据中的参考数据以及除参考数据以外的其它数据中的每个数据与相邻数据的运算结果,采用并行的方式对其它数据进行还原,能够有效提高解压的效率,并且,由于压缩数据中存储了相邻数据的运算结果,因此只需要存储少量的参考数据甚至只需要存储一个参考数据即可,能够有效保障数据的压缩率,节省数据存储空间,提高数据传输效率。
图6为本申请实施例提供的一种数据压缩和解压的总体示意图。如图6所示,首先对数据进行并行压缩和拼接,得到完整压缩数据,然后,对数据进行解压时,采用并行解压的方式获取原始数据。在实际应用中,压缩和解压可以基于同一个设备来实现,也可以基于不同的设备来实现,本申请实施例对此不作限制。
在上述各实施例提供的技术方案中,时序数据为一系列时间点对应的数据,而每个时间点对应的数据可以有一个或多个。例如,时序数据中的每个时间点可以对应有一个时间戳和一个检测数据,相邻时间的检测数据通常比较接近。在对数据进行压缩或解压时,可以将不同类型的数据分开处理,针对同一类数据进行并行压缩或解压,例如,可以首先对全部时间戳进行压缩,然后再对全部检测数据进行压缩,避免不同类型的数据混合处理导致运算结果过大,不利于降低压缩率。
当然,除了时序数据以外,本申请实施例中的方法还可以用于对其它任意类型的数据进行压缩和解压。本申请实施例能够在保证最好的压缩率的同时,通过并行处理方式来提高数据的压缩和解压性能。
本申请实施例中所指的并行处理,可以是通过多线程实现并行处理,每个线程处理一个或多个数据,所述线程可以是通过任意方式实现的线程,例如,可以通过SIMD(Single Instruction Multiple Data,单指令多数据流)、SIMT(Single InstructionMultiple Threads,单指令多线程)等方式实现并行处理。
在上述各实施例提供的技术方案中,数据压缩算法中用到的运算可以是异或运算,例如:C3=P3xor P2,也可以是其它运算,例如差值运算:C3=P3-P2,二阶差值运算:C3=(P3-P2)-(P2-P1)等,在解压时,利用压缩运算对应的逆操作来还原数据,例如,异或的逆操作:P3=P2 xor C3,差值的逆操作:P3=P2+C3,二阶差值的逆操作:P3=P2+(P2-P1)+C3,等等。
以下将详细描述本申请的一个或多个实施例的数据处理装置。本领域技术人员可以理解,这些数据处理装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图7为本申请实施例提供的一种数据处理装置的结构示意图。如图7所示,该装置可以包括:
选择模块11,用于在待压缩的数据中选择一个参考数据并存储所述参考数据;
压缩模块12,用于以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
可选的,所述压缩模块12具体可以用于:并行处理所述待压缩的数据中的其它数据,获取每个数据与相邻数据的运算结果并存储。
可选的,所述压缩模块12具体可以用于:并行处理所述待压缩的数据中的其它数据,针对位于所述参考数据之前的每个数据,获取该数据与后一个数据的运算结果并存储,针对位于所述参考数据之后的每个数据,获取该数据与前一个数据的运算结果并存储。
可选的,所述待压缩的数据为时序数据,所述参考数据为所述时序数据中的第一个数据;所述压缩模块12具体可以用于:获取待处理的数据组,所述数据组包括所述其它数据中的待处理的前预设个数个数据,所述预设个数大于1;并行处理该数据组中的多个数据,获取每个数据与前一个数据的运算结果并存储。
可选的,所述压缩模块12具体可以用于:获取待处理的数据组,所述数据组包括所述其它数据中的待处理的前预设个数个数据,所述预设个数大于1;并行计算所述数据组中每个数据与前一个数据的运算结果,确定所述运算结果中的非零部分;存储所述非零部分以及用于指示所述非零部分所在位置的指示信息。
可选的,所述压缩模块12具体可以用于:获取待处理的数据组,所述数据组包括所述其它数据中的待处理的前预设个数个数据,所述预设个数大于1;并行计算所述数据组中每个数据与前一个数据的运算结果,确定所述运算结果中的非零部分、非零部分需要占用的存储空间以及用于指示非零部分所在位置的指示信息;根据各个运算结果的非零部分需要占用的存储空间中的最大值,计算最大存储空间;存储所述数据组对应的压缩数据,其中压缩数据包括:所述数据组中每个数据对应的指示信息、最大存储空间、每个数据的运算结果中的非零部分,其中每个数据的运算结果中的非零部分占用的空间为所述最大存储空间。
可选的,所述压缩模块12具体可以用于:获取待处理的数据组,所述数据组包括所述其它数据中的待处理的前预设个数个数据,所述预设个数大于1;并行计算所述数据组中每个数据与前一个数据的运算结果,判断所述运算结果是否为零;若不为零,则确定所述运算结果中的非零部分、非零部分需要占用的存储空间以及用于指示非零部分所在位置的指示信息;根据各个运算结果的非零部分需要占用的存储空间中的最大值,计算最大存储空间;存储所述数据组对应的压缩数据,其中压缩数据包括:所述数据组中每个数据的运算结果是否为零的判断结果、运算结果不为零的数据对应的指示信息、最大存储空间、运算结果不为零的数据的运算结果中的非零部分,其中每个非零部分占用的空间为所述最大存储空间。
可选的,所述数据与前一个数据的运算结果为所述数据与前一个数据的异或结果,所述运算结果中的非零部分为所述运算结果中除去前后的零字节后的部分,所述指示信息为所述非零部分还原为相应的运算结果需要左移或右移的字节数。
可选的,所述装置还可以包括:数据解压模块,用于根据压缩后的数据中的参考数据以及其它数据对应的压缩结果,还原所述其它数据;其中,所述压缩结果包括其它数据中的每个数据与相邻数据的运算结果。
可选的,所述数据解压模块具体可以用于:根据待还原的数据与已经被还原的数据之间的各个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果,其中,所述已经被还原的数据为所述参考数据或者其它数据中已经被还原的数据;根据所述待还原的数据与所述已经被还原的数据之间的运算结果以及所述被还原的数据,计算待还原数据对应的原始数据。
可选的,所述数据解压模块具体可以用于:根据待还原的数据与已经被还原的数据之间的各个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果,其中,所述已经被还原的数据为所述参考数据或者其它数据中已经被还原的数据;将所述待还原的数据与所述已经被还原的数据之间的运算结果与所述被还原的数据进行压缩运算的逆操作,得到待还原数据对应的原始数据。
图7所示装置可以执行前述实施例一至二提供的数据处理方法,本实施例未详细描述的部分,可参考对前述实施例的相关说明。该技术方案的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
图8为本申请实施例提供的另一种数据处理装置的结构示意图。如图8所示,该装置可以包括:
获取模块13,用于获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果;
解压模块14,用于根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
可选的,所述其它数据对应的压缩结果包括其它数据中的每个数据与相邻数据的运算结果。
可选的,所述压缩数据为时序数据对应的压缩数据,所述参考数据为所述时序数据中的第一个数据,每个数据与相邻数据的运算结果为每个数据与前一个数据的运算结果。
相应的,所述解压模块14具体可以用于:获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;根据已经被还原的数据,并行处理该数据组中的多个数据对应的压缩结果,还原所述数据组中的数据。
其中,所述已经被还原的数据为所述参考数据或者其它数据中已经被还原的数据。
可选的,所述解压模块14具体可以用于:获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;并行处理所述数据组中的多个数据对应的压缩结果,获取所述数据组中每个待还原的数据与相邻数据的运算结果;根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据。
可选的,所述解压模块14具体可以用于:获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;并行处理所述数据组中的多个数据对应的压缩结果,获取所述数据组中每个待还原的数据与相邻数据的运算结果;根据待还原的数据与已经被还原的数据之间的各个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果;将所述待还原的数据与所述已经被还原的数据之间的运算结果与所述已经被还原的数据进行压缩运算的逆操作,得到待还原数据对应的原始数据。
可选的,所述数据组对应的压缩数据包括所述数据组中每个数据与相邻数据的运算结果的非零部分以及用于指示非零部分所在位置的指示信息。
相应的,所述解压模块14具体可以用于:获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;并行处理所述数据组中的多个数据对应的压缩结果,获取待还原的数据对应的运算结果中的非零部分以及用于指示所述非零部分所在位置的指示信息;根据所述非零部分以及用于指示所述非零部分所在位置的指示信息,计算所述待还原的数据与相邻数据的运算结果;根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据。
可选的,所述数据组对应的压缩数据包括所述数据组中每个数据与相邻数据的运算结果的非零部分、用于指示非零部分所在位置的指示信息、最大存储空间,其中每个数据对应的运算结果中的非零部分占用的空间为所述最大存储空间。
相应的,所述解压模块14具体可以用于:获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;并行处理所述数据组中的多个数据对应的压缩结果,获取待还原的数据对应的指示信息和最大存储空间;根据最大存储空间,确定每个数据对应的运算结果中的非零部分所在的存储空间;根据每个数据对应的运算结果中的非零部分所在的存储空间,确定运算结果中的非零部分;根据所述运算结果中的非零部分和所述指示信息,计算所述待还原的数据与相邻数据的运算结果;根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据。
可选的,所述数据组对应的压缩数据包括所述数据组中每个数据的运算结果是否为零的判断结果、不为零的运算结果中的非零部分、运算结果不为零的数据对应的用于指示非零部分所在位置的指示信息、最大存储空间,其中每个非零部分占用的空间为所述最大存储空间。
相应的,所述解压模块14具体可以用于:获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;并行处理所述数据组中的多个数据对应的压缩结果,若待还原的数据对应的判断结果为是,则所述待还原的数据对应的运算结果为零;若所述待还原的数据对应的判断结果为否,则获取所述待还原的数据对应的指示信息和最大存储空间;根据最大存储空间以及所述数据组中的其它数据的判断结果,确定所述待还原的数据对应的运算结果中的非零部分所在的存储空间;根据所述待还原的数据对应的运算结果中的非零部分所在的存储空间,确定运算结果中的非零部分;根据所述运算结果中的非零部分和所述指示信息,计算所述待还原的数据对应的运算结果;根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据。
可选的,所述数据与前一个数据的运算结果为所述数据与前一个数据的异或结果,所述运算结果中的非零部分为所述运算结果中除去前后的零字节后的部分,所述指示信息为所述非零部分还原为相应的运算结果需要左移或右移的字节数。
图8所示装置可以执行前述实施例三提供的数据处理方法,本实施例未详细描述的部分,可参考对前述实施例的相关说明。该技术方案的执行过程和技术效果参见前述实施例中的描述,在此不再赘述。
图9为本申请实施例提供的一种电子设备的结构示意图。该电子设备可以为任意具有数据处理功能的设备如数据处理服务器等。如图9所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,所述第一存储器22用于存储支持电子设备执行前述任一实施例提供的数据处理方法的程序,所述第一处理器21被配置为用于执行所述第一存储器22中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第一处理器21执行时能够实现如下步骤:
在待压缩的数据中选择一个参考数据并存储所述参考数据;
以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
可选地,所述第一处理器21还用于执行前述图1-图2所示实施例中的全部或部分步骤。
其中,所述电子设备的结构中还可以包括第一通信接口23,用于电子设备与其它设备或通信网络通信。
图10为本申请实施例提供的另一种电子设备的结构示意图。如图10所示,该电子设备可以包括:第二处理器24和第二存储器25。其中,所述第二存储器25用于存储支持电子设备执行前述任一实施例提供的数据处理方法的程序,所述第二处理器24被配置为用于执行所述第二存储器25中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第二处理器24执行时能够实现如下步骤:
获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果;
根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
可选地,所述第二处理器24还用于执行前述图4所示实施例中的全部或部分步骤。
其中,所述电子设备的结构中还可以包括第二通信接口26,用于电子设备与其它设备或通信网络通信。
另外,本申请实施例提供了一种存储计算机指令的计算机可读存储介质,当所述计算机指令被处理器执行时,致使所述处理器执行包括以下的动作:
在待压缩的数据中选择一个参考数据并存储所述参考数据;
以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
当所述计算机指令被处理器执行时,还可以致使所述处理器执行实施例一至四中的数据处理方法所涉及的全部或部分步骤。
另外,本申请实施例提供了另一种存储计算机指令的计算机可读存储介质,当所述计算机指令被处理器执行时,致使所述处理器执行包括以下的动作:
获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果;
根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
当所述计算机指令被处理器执行时,还可以致使所述处理器执行实施例五中的数据处理方法所涉及的全部或部分步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理设备以特定方式楼层的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其它数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其它类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其它内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其它光学存储、磁盒式磁带,磁带磁磁盘存储或其它磁性存储设备或任何其它非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (24)
1.一种数据处理方法,其特征在于,包括:
在待压缩的数据中选择一个参考数据并存储所述参考数据;
以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
2.根据权利要求1所述的方法,其特征在于,以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩,包括:
并行处理所述待压缩的数据中的其它数据,获取每个数据与相邻数据的运算结果并存储。
3.根据权利要求2所述的方法,其特征在于,获取每个数据与相邻数据的运算结果并存储,包括:
针对位于所述参考数据之前的每个数据,获取该数据与后一个数据的运算结果并存储;针对位于所述参考数据之后的每个数据,获取该数据与前一个数据的运算结果并存储。
4.根据权利要求2所述的方法,其特征在于,所述待压缩的数据为时序数据,所述参考数据为所述时序数据中的第一个数据;
并行处理所述待压缩的数据中的其它数据,获取每个数据与相邻数据的运算结果并存储,包括:
获取待处理的数据组,所述数据组包括所述其它数据中的待处理的前预设个数个数据,所述预设个数大于1;并行处理该数据组中的多个数据,获取每个数据与前一个数据的运算结果并存储。
5.根据权利要求4所述的方法,其特征在于,并行处理该数据组中的多个数据,获取每个数据与前一个数据的运算结果并存储,包括:
并行计算所述数据组中每个数据与前一个数据的运算结果,确定所述运算结果中的非零部分;
存储所述非零部分以及用于指示所述非零部分所在位置的指示信息。
6.根据权利要求4所述的方法,其特征在于,并行处理该数据组中的多个数据,获取每个数据与前一个数据的运算结果并存储,包括:
并行计算所述数据组中每个数据与前一个数据的运算结果,确定所述运算结果中的非零部分、非零部分需要占用的存储空间以及用于指示非零部分所在位置的指示信息;
根据各个运算结果的非零部分需要占用的存储空间中的最大值,计算最大存储空间;
存储所述数据组对应的压缩数据,其中压缩数据包括:所述数据组中每个数据对应的指示信息、最大存储空间、每个数据的运算结果中的非零部分,其中每个数据的运算结果中的非零部分占用的空间为所述最大存储空间。
7.根据权利要求4所述的方法,其特征在于,并行处理该数据组中的多个数据,获取每个数据与前一个数据的运算结果并存储,包括:
并行计算所述数据组中每个数据与前一个数据的运算结果,判断所述运算结果是否为零;
若不为零,则确定所述运算结果中的非零部分、非零部分需要占用的存储空间以及用于指示非零部分所在位置的指示信息;
根据各个运算结果的非零部分需要占用的存储空间中的最大值,计算最大存储空间;
存储所述数据组对应的压缩数据,其中压缩数据包括:所述数据组中每个数据的运算结果是否为零的判断结果、运算结果不为零的数据对应的指示信息、最大存储空间、运算结果不为零的数据的运算结果中的非零部分,其中每个非零部分占用的空间为所述最大存储空间。
8.根据权利要求5至7中任一项所述的方法,其特征在于,所述数据与前一个数据的运算结果为所述数据与前一个数据的异或结果,所述运算结果中的非零部分为所述运算结果中除去前后的零字节后的部分,所述指示信息为所述非零部分还原为相应的运算结果需要左移或右移的字节数。
9.根据权利要求2所述的方法,其特征在于,还包括:
根据压缩后的数据中的参考数据以及其它数据对应的压缩结果,还原所述其它数据;
其中,所述压缩结果包括其它数据中的每个数据与相邻数据的运算结果。
10.根据权利要求9所述的方法,其特征在于,根据所述压缩后的数据中的参考数据以及其它数据对应的压缩结果,还原所述其它数据,包括:
根据待还原的数据与已经被还原的数据之间的各个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果,其中,所述已经被还原的数据为所述参考数据或者其它数据中已经被还原的数据;
根据所述待还原的数据与所述已经被还原的数据之间的运算结果以及所述被还原的数据,计算待还原数据对应的原始数据。
11.根据权利要求10所述的方法,其特征在于,根据所述待还原的数据与所述已经被还原的数据之间的运算结果以及所述被还原的数据,计算待还原数据对应的原始数据,包括:
将所述待还原的数据与所述已经被还原的数据之间的运算结果与所述被还原的数据进行压缩运算的逆操作,得到待还原数据对应的原始数据。
12.一种数据处理方法,其特征在于,包括:
获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果;
根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
13.根据权利要求12所述的方法,其特征在于,所述其它数据对应的压缩结果包括其它数据中的每个数据与相邻数据的运算结果。
14.根据权利要求13所述的方法,其特征在于,所述压缩数据为时序数据对应的压缩数据,所述参考数据为所述时序数据中的第一个数据,每个数据与相邻数据的运算结果为每个数据与前一个数据的运算结果;
相应的,根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据,包括:
获取待还原的数据组对应的压缩结果,其中所述数据组包括相邻的预设个数个数据,所述预设个数大于1;根据已经被还原的数据,并行处理该数据组中的多个数据对应的压缩结果,还原所述数据组中的数据;
其中,所述已经被还原的数据为所述参考数据或者其它数据中已经被还原的数据。
15.根据权利要求14所述的方法,其特征在于,根据已经被还原的数据,并行处理该数据组中的多个数据对应的压缩结果,还原所述数据组中的数据,包括:
并行处理所述数据组中的多个数据对应的压缩结果,获取所述数据组中每个待还原的数据与相邻数据的运算结果;
根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据。
16.根据权利要求15所述的方法,其特征在于,根据待还原的数据对应的运算结果以及已经被还原的数据,计算待还原数据对应的原始数据,包括:
根据待还原的数据与已经被还原的数据之间的各个数据对应的运算结果,计算所述待还原的数据与所述已经被还原的数据之间的运算结果;
将所述待还原的数据与所述已经被还原的数据之间的运算结果与所述已经被还原的数据进行压缩运算的逆操作,得到待还原数据对应的原始数据。
17.根据权利要求15所述的方法,其特征在于,所述数据组对应的压缩数据包括所述数据组中每个数据与相邻数据的运算结果的非零部分以及用于指示非零部分所在位置的指示信息;
相应的,获取待还原的数据与相邻数据的运算结果,包括:
获取待还原的数据对应的运算结果中的非零部分以及用于指示所述非零部分所在位置的指示信息;
根据所述非零部分以及用于指示所述非零部分所在位置的指示信息,计算所述待还原的数据与相邻数据的运算结果。
18.根据权利要求15所述的方法,其特征在于,所述数据组对应的压缩数据包括所述数据组中每个数据与相邻数据的运算结果的非零部分、用于指示非零部分所在位置的指示信息、最大存储空间,其中每个数据对应的运算结果中的非零部分占用的空间为所述最大存储空间;
相应的,获取待还原的数据与相邻数据的运算结果,包括:
获取待还原的数据对应的指示信息和最大存储空间;
根据最大存储空间,确定每个数据对应的运算结果中的非零部分所在的存储空间;
根据每个数据对应的运算结果中的非零部分所在的存储空间,确定运算结果中的非零部分;
根据所述运算结果中的非零部分和所述指示信息,计算所述待还原的数据与相邻数据的运算结果。
19.根据权利要求15所述的方法,其特征在于,所述数据组对应的压缩数据包括所述数据组中每个数据的运算结果是否为零的判断结果、不为零的运算结果中的非零部分、运算结果不为零的数据对应的用于指示非零部分所在位置的指示信息、最大存储空间,其中每个非零部分占用的空间为所述最大存储空间;
相应的,获取待还原的数据与相邻数据的运算结果,包括:
若待还原的数据对应的判断结果为是,则所述待还原的数据对应的运算结果为零;
若所述待还原的数据对应的判断结果为否,则获取所述待还原的数据对应的指示信息和最大存储空间;
根据最大存储空间以及所述数据组中的其它数据的判断结果,确定所述待还原的数据对应的运算结果中的非零部分所在的存储空间;
根据所述待还原的数据对应的运算结果中的非零部分所在的存储空间,确定运算结果中的非零部分;
根据所述运算结果中的非零部分和所述指示信息,计算所述待还原的数据对应的运算结果。
20.根据权利要求17至19中任一项所述的方法,其特征在于,所述数据与前一个数据的运算结果为所述数据与前一个数据的异或结果,所述运算结果中的非零部分为所述运算结果中除去前后的零字节后的部分,所述指示信息为所述非零部分还原为相应的运算结果需要左移或右移的字节数。
21.一种数据处理装置,其特征在于,包括:
选择模块,用于在待压缩的数据中选择一个参考数据并存储所述参考数据;
压缩模块,用于以所述参考数据作为参考,通过并行处理方式对所述待压缩的数据中的其它数据进行压缩。
22.一种数据处理装置,其特征在于,包括:
获取模块,用于获取压缩数据,所述压缩数据包括一个参考数据以及除参考数据以外的其它数据对应的压缩结果;
解压模块,用于根据所述参考数据,并行处理其它数据对应的压缩结果,还原所述其它数据。
23.一种电子设备,其特征在于,包括:第一存储器和第一处理器;其中,
所述第一存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第一处理器执行时实现如权利要求1至11中任一项所述的数据处理方法。
24.一种电子设备,其特征在于,包括:第二存储器和第二处理器;其中,
所述第二存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述第二处理器执行时实现如权利要求12至20中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204023.9A CN111064471B (zh) | 2018-10-16 | 2018-10-16 | 数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204023.9A CN111064471B (zh) | 2018-10-16 | 2018-10-16 | 数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111064471A true CN111064471A (zh) | 2020-04-24 |
CN111064471B CN111064471B (zh) | 2023-04-11 |
Family
ID=70296443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811204023.9A Active CN111064471B (zh) | 2018-10-16 | 2018-10-16 | 数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111064471B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111723053A (zh) * | 2020-06-24 | 2020-09-29 | 北京航天数据股份有限公司 | 一种数据的压缩方法及装置、解压方法及装置 |
CN112399479A (zh) * | 2020-11-03 | 2021-02-23 | 广州机智云物联网科技有限公司 | 用于数据传输的方法、电子设备和存储介质 |
CN113885787A (zh) * | 2021-06-08 | 2022-01-04 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
CN114547030A (zh) * | 2022-01-20 | 2022-05-27 | 清华大学 | 多级时序数据压缩方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0621827A (ja) * | 1992-06-30 | 1994-01-28 | Nec Corp | データ圧縮装置及びその方法 |
JPH08194823A (ja) * | 1995-01-17 | 1996-07-30 | Fuji Xerox Co Ltd | データ圧縮装置 |
JP2006060522A (ja) * | 2004-08-20 | 2006-03-02 | Princeton Technology Corp | デジアニメーション計算仕事量の圧縮方法 |
CN101961248A (zh) * | 2009-07-23 | 2011-02-02 | 深圳迈瑞生物医疗电子股份有限公司 | 一种超声系统中非线性压缩的方法与装置 |
CN102427369A (zh) * | 2011-10-19 | 2012-04-25 | 广东电网公司电力科学研究院 | 生产型时序数据的实时全息无损压缩方法 |
CN102457283A (zh) * | 2010-10-28 | 2012-05-16 | 阿里巴巴集团控股有限公司 | 一种数据压缩、解压缩方法及设备 |
CN104038232A (zh) * | 2014-05-09 | 2014-09-10 | 安庆师范学院 | 基于二次异或运算的测试数据压缩与解压缩方法 |
CN104038233A (zh) * | 2014-05-09 | 2014-09-10 | 安庆师范学院 | 基于相邻位异或运算的测试数据压缩与解压缩方法 |
CN106055691A (zh) * | 2016-06-12 | 2016-10-26 | 成都科来软件有限公司 | 一种分布式数据存储处理方法及存储处理系统 |
US9753935B1 (en) * | 2016-08-02 | 2017-09-05 | Palantir Technologies Inc. | Time-series data storage and processing database system |
CN108134775A (zh) * | 2017-11-21 | 2018-06-08 | 华为技术有限公司 | 一种数据处理方法和设备 |
-
2018
- 2018-10-16 CN CN201811204023.9A patent/CN111064471B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0621827A (ja) * | 1992-06-30 | 1994-01-28 | Nec Corp | データ圧縮装置及びその方法 |
JPH08194823A (ja) * | 1995-01-17 | 1996-07-30 | Fuji Xerox Co Ltd | データ圧縮装置 |
JP2006060522A (ja) * | 2004-08-20 | 2006-03-02 | Princeton Technology Corp | デジアニメーション計算仕事量の圧縮方法 |
CN101961248A (zh) * | 2009-07-23 | 2011-02-02 | 深圳迈瑞生物医疗电子股份有限公司 | 一种超声系统中非线性压缩的方法与装置 |
CN102457283A (zh) * | 2010-10-28 | 2012-05-16 | 阿里巴巴集团控股有限公司 | 一种数据压缩、解压缩方法及设备 |
CN102427369A (zh) * | 2011-10-19 | 2012-04-25 | 广东电网公司电力科学研究院 | 生产型时序数据的实时全息无损压缩方法 |
CN104038232A (zh) * | 2014-05-09 | 2014-09-10 | 安庆师范学院 | 基于二次异或运算的测试数据压缩与解压缩方法 |
CN104038233A (zh) * | 2014-05-09 | 2014-09-10 | 安庆师范学院 | 基于相邻位异或运算的测试数据压缩与解压缩方法 |
CN106055691A (zh) * | 2016-06-12 | 2016-10-26 | 成都科来软件有限公司 | 一种分布式数据存储处理方法及存储处理系统 |
US9753935B1 (en) * | 2016-08-02 | 2017-09-05 | Palantir Technologies Inc. | Time-series data storage and processing database system |
CN108134775A (zh) * | 2017-11-21 | 2018-06-08 | 华为技术有限公司 | 一种数据处理方法和设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111723053A (zh) * | 2020-06-24 | 2020-09-29 | 北京航天数据股份有限公司 | 一种数据的压缩方法及装置、解压方法及装置 |
CN112399479A (zh) * | 2020-11-03 | 2021-02-23 | 广州机智云物联网科技有限公司 | 用于数据传输的方法、电子设备和存储介质 |
CN112399479B (zh) * | 2020-11-03 | 2023-04-07 | 广州机智云物联网科技有限公司 | 用于数据传输的方法、电子设备和存储介质 |
CN113885787A (zh) * | 2021-06-08 | 2022-01-04 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
CN114547030A (zh) * | 2022-01-20 | 2022-05-27 | 清华大学 | 多级时序数据压缩方法、装置、电子设备及存储介质 |
CN114547030B (zh) * | 2022-01-20 | 2023-03-24 | 清华大学 | 多级时序数据压缩方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111064471B (zh) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111064471B (zh) | 数据处理方法、装置及电子设备 | |
JP6804668B2 (ja) | ブロックデータ検証方法および装置 | |
US9450603B2 (en) | Compression of integer data using a common divisor | |
CN110262773B (zh) | 一种计算机数据处理方法及装置 | |
CN108089814B (zh) | 一种数据存储方法及装置 | |
KR101801075B1 (ko) | 데이터를 판독하고 기록하기 위한 방법, 장치 및 시스템 | |
US11101818B2 (en) | Method and device for storing time series data with adaptive length encoding | |
KR102152346B1 (ko) | 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템 | |
CN110109646B (zh) | 数据处理方法、装置和乘加器及存储介质 | |
US9025622B1 (en) | Lossless recursive deconstruction and reconstruction of digital information data streams | |
CN106708468B (zh) | 一种除法运算装置 | |
CN107608821B (zh) | 一种基于纠删码的数据读取方法、装置、设备 | |
CN110545106A (zh) | 时序数据的编码方法及装置 | |
CN114048061A (zh) | 校验块的生成方法及装置 | |
CN106250499B (zh) | 一种视频对挖掘方法及装置 | |
US10782933B2 (en) | Computer data processing method and apparatus for large number operations | |
US11216275B1 (en) | Converting floating point data into integer data using a dynamically adjusted scale factor | |
CN107301017B (zh) | 一种数据存储方法及装置 | |
US9741155B2 (en) | Apparatus and method for tile-based graphic data rendering | |
CN112100453B (zh) | 一种字符串分布统计方法、系统、设备及计算机存储介质 | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN111147082B (zh) | 一种证券交易数据压缩方法及装置 | |
CN114691414A (zh) | 一种校验块生成方法及一种数据恢复方法 | |
CN112015325B (zh) | 一种生成解码矩阵的方法、解码方法和对应装置 | |
CN110796238A (zh) | 卷积神经网络权重压缩方法及其系统 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |