压缩数据、解压数据的方法及装置与流程

文档序号:23229716发布日期:2020-12-08 15:17阅读:144来源:国知局
压缩数据、解压数据的方法及装置与流程
本申请涉及存储领域,特别涉及一种压缩数据、解压数据的方法及装置。
背景技术
:时序数据是指时间序列数据,时空轨迹数据就是在时空环境下,通过对一个或多个移动对象运动过程的采样所获得的数据信息。时序数据和时空轨迹数据的数据量往往较大,所以目前在存储时序数据或时空轨迹数据时,需要消耗大量的存储空间。技术实现要素:本申请实施例提供了一种压缩数据、解压数据的方法及装置,以减小对存储空间的消耗。所述技术方案如下:一方面,本申请提供了一种压缩数据的方法,所述方法包括:获取m个目标数据,m为大于1的整数,所述m个目标数据是属于同一个参数的参数值;获取第一差值集合,所述第一差值集合包括m-1个第一差值,所述第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m;对所述第一差值集合进行压缩编码得到编码数据,所述编码数据包括压缩编码方式、第一个目标数据和编码信息,所述编码信息用于描述所述第一差值集合。可选的,所述m个目标数据的类型为整型或时间类型。可选的,所述获取m个目标数据,包括:获取m个浮点型的数据,所述m个浮点型的数据属于同一个参数;根据所述m个浮点型的数据中的最大小数点位数,将所述m个浮点型的数据转换成m个整型的数据,所述m个整型的数据为所述m个目标数据。可选的,所述根据所述第一差值集合,对所述m个目标数据进行压缩编码得到编码数据,包括:在所述第一差值集合中的各第一差值不同时,根据所述第一差值集合中的第一差值获取最大公约数;采用指定压缩编码算法,对所述第一差值集合进行压缩编码得到编码信息,所述编码数据包括第一压缩编码方式、第一个目标数据、所述最大公约数和所述编码信息。可选的,所述采用指定压缩编码算法,对所述第一差值集合进行压缩编码得到编码信息,包括:在所述最大公约数不等于1时,将所述第一差值集合中的一个第一差值与所述最大公约数据相除,得到第二差值集合,所述第二差值集合包括m-1个第二差值;采用指定压缩编码算法,对所述第二差值集合进行压缩编码得到编码信息。可选的,在所述第一差值集合中的各第一差值相同时,所述编码数据包括第二压缩编码方式、第一个目标数据和所述编码信息、所述编码信息包括一个第一差值和第一差值集合中的第一差值数目m-1。另一方面,本申请提供了一种解压数据的方法,所述方法包括:获取编码数据,所述编码数据包括压缩编码方式、第一个目标数据和编码信息,所述编码信息用于描述第一差值集合,所述第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,m为大于1的整数;对所述编码数据进行解压,得到m个目标数据。可选的,在所述压缩编码方式为第一压缩编码方式,所述压缩数据还包括所述第一差值集合的最大公约数,所述根据所述编码数据,解压m个目标数据,包括:采用指定压缩编码算法,对所述编码信息进行解压,得到第二差值集合,所述第二差值集合包括m-1个第二差值;将所述最大公约数与所述第二差值集合中的每个第二差值相乘得到第一差值集合;根据所述第一个目标数据和所述第一差值集合,获取所述m个目标数据。可选的,在所述压缩编码方式为第二压缩编码方式,所述编码信息包括一个第一差值和第一差值集合中的第一差值数目m-1,所述根据所述编码数据,解压m个目标数据,包括:根据所述第一个目标数据和所述第一差值获取所述m个目标数据。可选的,所述编码数据还包括最大小数点位数;所述方法还包括:根据所述最大小数点位数,将所述m个目标数据转换成浮点型的数据。另一方面,本申请提供了一种压缩数据的装置,所述装置包括:第一获取模块,用于获取m个目标数据,m为大于1的整数,所述m个目标数据是属于同一个参数的参数值;第二获取模块,用于获取第一差值集合,所述第一差值集合包括m-1个第一差值,所述第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m;压缩模块,用于对所述第一差值集合进行压缩编码得到编码数据,所述编码数据包括压缩编码方式、第一个目标数据和编码信息,所述编码信息用于描述所述第一差值集合。可选的,所述m个目标数据的类型为整型或时间类型。可选的,所述第一获取模块,用于:获取m个浮点型的数据,所述m个浮点型的数据属于同一个参数;根据所述m个浮点型的数据中的最大小数点位数,将所述m个浮点型的数据转换成m个整型的数据,所述m个整型的数据为所述m个目标数据。可选的,所述压缩模块,用于:在所述第一差值集合中的各第一差值不同时,根据所述第一差值集合中的第一差值获取最大公约数;采用指定压缩编码算法,对所述第一差值集合进行压缩编码得到编码信息,所述编码数据包括第一压缩编码方式、第一个目标数据、所述最大公约数和所述编码信息。可选的,所述压缩模块,用于:在所述最大公约数不等于1时,将所述第一差值集合中的一个第一差值与所述最大公约数据相除,得到第二差值集合,所述第二差值集合包括m-1个第二差值;采用指定压缩编码算法,对所述第二差值集合进行压缩编码得到编码信息。可选的,在所述第一差值集合中的各第一差值相同时,所述编码数据包括第二压缩编码方式、第一个目标数据和所述编码信息、所述编码信息包括一个第一差值和第一差值集合中的第一差值数目m-1。另一方面,本申请提供了一种解压数据的装置,所述装置包括:获取模块,用于获取编码数据,所述编码数据包括压缩编码方式、第一个目标数据和编码信息,所述编码信息用于描述第一差值集合,所述第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,m为大于1的整数;解压模块,用于对所述编码数据进行解压,得到m个目标数据。可选的,在所述压缩编码方式为第一压缩编码方式,所述压缩数据还包括所述第一差值集合的最大公约数,所述解压模块,用于:采用指定压缩编码算法,对所述编码信息进行解压,得到第二差值集合,所述第二差值集合包括m-1个第二差值;将所述最大公约数与所述第二差值集合中的每个第二差值相乘得到第一差值集合;根据所述第一个目标数据和所述第一差值集合,获取所述m个目标数据。可选的,在所述压缩编码方式为第二压缩编码方式,所述编码信息包括一个第一差值和第一差值集合中的第一差值数目m-1,所述解压模块,用于:根据所述第一个目标数据和所述第一差值获取所述m个目标数据。可选的,所述编码数据还包括最大小数点位数;所述装置还包括:转换模块,用于根据所述最大小数点位数,将所述m个目标数据转换成浮点型的数据。另一方面,本申请提供了一种终端,所述终端包括处理器和存储器,所述存储器存储至少一条指令,所述至少一条指令被所述处理器加载并执行,以实现上述压缩数据的方法或解压数据的方法。另一方面,本申请提供了一种非易失性计算机可读存储介质,用于存储至少一个指令,所述至少一个指令被处理器加载并运行,以实现上述压缩数据的方法或解压数据的方法。另一方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括在计算机可读存储介质中存储的计算机程序,并且所述计算程序通过处理器进行加载来实现上述压缩数据的方法或解压数据的方法。本申请实施例提供的技术方案可以包括以下有益效果:由于第一差值集合中的每个差值小于目标数据,所以在对第一差值集合进行编码时,得到的编码信息的数据量远小于该m个目标数据的数据量,从而存储参数对应的编码数据,可以减小对存储空间的消耗。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。图1是本申请实施例提供的一种压缩数据的方法流程图;图2是本申请实施例提供的另一种压缩数据的方法流程图;图3是本申请实施例提供的一种解压数据的方法流程图;图4是本申请实施例提供的另一种解压数据的方法流程图;图5是本申请实施例提供的一种压缩数据的装置结构示意图;图6是本申请实施例提供的一种解压数据的装置结构示意图;图7是本申请实施例提供的一种终端的结构示意图。通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。数据序列是按照某一指标对多个数据进行顺序排列的序列。例如,时序数据或时空轨迹数据是一种数据序列。时序数据是一种时间序列数据,是按照时间顺序记录的数据序列,时序数据包括多个数据点,每个数据点包括多个数据。例如,假设每隔一分钟采集一次温度,得到一个数据点,该数据点包括当前的时间和采集的温度,记录该数据点。在采集一小时时,记录下来的时序数据包括60个数据点。时空轨迹数据是对移动对象的运动过程进行采集得到的数据序列。例如,假设有一辆汽车在行驶过程中每10秒产生一条位置数据,在一个小时中行驶产生时空轨迹数据包括360条位置数据,该360条位置数据就是360个数据点,每个数据点包括汽车标识,车牌号、速度、用于标识是否超速的超速指示、时间、经度、纬度和描述信息,该360个数据点组成一个时空轨迹数据。该360条位置数据如下:第一条位置数据为:{汽车标识:1251256126,车牌号:12345**,速度:60,超速指示:false,时间:1583182800000,经度:120.125525,纬度:30.141252,描述信息:abcdefghij}。第二条位置数据为:{汽车标识:1251256126,车牌号:12345**,速度:58,超速指示:false,时间:1583182800010,经度:120.125552,纬度:30.141267,描述信息:abcdefgklh}。……第360条位置数据为:{汽车标识:1251256126,车牌号:12345**,速度:46,超速指示:false,时间:1583182803600,经度:120.126525,纬度:30.144252,描述信息:abcde}。由于数据序列包括多个数据点,每个数据点包括多个数据,导致数据序列的数据量较大,如果直接保存数据序列,消耗大量的存储空间。而对于数据序列中任一个数据点,该数据点包括不同类型的数据,而对于整型、时间类型或浮点型等类型的数据。可以从数据序列中的每个数据点中获取属于一个参数的多个数据,该多个数据均为该参数的参数值,该多个数据的数据类型为整型、时间类型或浮点型等,对该多个数据进行压缩编码,得到编码数据,编码数据的数据量较小,存储编码数据,可以减小用于存储该参数的数据所需要的存储空间。例如,对于上述时空轨迹数据,从该时空轨迹数据中获取360个整型类型的速度、360个时间类型的时间、360个浮点型的经度、360个浮点型的纬度,对该360个速度、360个时间、360个经度、360个纬度分别进行压缩编码,得到数据量较小的速度编码数据、时间编码数据、经度编码数据、纬度编码数据。存储速度编码数据、时间编码数据、经度编码数据、纬度编码数据,相比直接存储该360个速度、360个时间、360个经度、360个纬度,可以减小存储空间。参见图1,本申请实施例提供了一种压缩数据的方法,所述方法包括:步骤101:获取m个目标数据,m为大于1的整数,该m个目标数据是属于同一个参数的参数值。步骤102:获取第一差值集合,第一差值集合包括m-1个第一差值,第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m。步骤103:对第一差值集合进行压缩编码得到编码数据,该编码数据包括压缩编码方式、第一个目标数据和编码信息,该编码信息用于描述第一差值集合。可选的,对于图1所示的实施方式,本申请实施例提供了一种压缩编码的实现实例。参见图2,该实现实例包括:步骤201:从待压缩的数据序列中获取m个目标数据,该m个目标数据均为整数,该m个目标数据是属于同一个参数的参数值,该数据序列包括m个数据点,每个数据点包括n个数据,m为大于1的整数,n为大于0的整数。在本步骤中,可以通过如下2011至2012的操作,从待压缩的数据序列中获取m个目标数据。该2011至2012的操作分别为:2011:从待压缩的数据序列中获取m个数据,该m个数据的数据类型为目标类型,该m个数据是属于同一个参数的参数值。该m个数据的数据类型为整型、时间类型或浮点型。即目标类型为整型、时间类型或浮点型。目标类型为数据序列中的待压缩数据的类型。对于每个数据点包括的n个数据,每个数据是属于不同参数的参数值。例如,假设,待压缩的数据序列为时空轨迹数据,该时空轨迹数据包括m个位置数据,每个位置数据包括n个不同参数的数据。假设,一个位置数据包括汽车标识、车牌号、时间、速度、经度、纬度和描述信息等不同参数的数据。汽车标识、车牌号和描述信息的数据类型均为字符型,时间的数据类型为时间类型,速度的数据类型为整型,经度和纬度的数据类型为浮点型。超速指示的数据类型为布尔型。假设当需要对整型的速度进行压缩时,从时空轨迹数据中获取m个速度。还假设,当需要对时间类型的时间进行压缩时,从时空轨迹数据中获取m个时间。再假设,当需要对浮点型的经度或纬度进行压缩时,从时空轨迹数据中获取m个经度或m个纬度。2012:将该m个数据转换成m个整数,即得到m个目标数据。可选的,对于浮点型的数据,在获取到m个浮点型的数据时,根据该m个浮点型的数据中的最大小数点位数,将该m个浮点型的数据转换成m个整数,即得到m个目标数据。在实现时:对于该m个浮点型的数据中,确定每个数据的小数点位数,从该每个数据的小数点位数中选择最大小数点位数。根据最大小数点位数,确定一个整数值,该整数值为10x,x为最大小数点位数。将该m个浮点型的数据分别与该整数值相乘,得到m个整数,即得到m个目标数据。例如,假设m=3,即获取到3个经度,该3个经度分别为120.125525,120.1258和120.132。经度“120.125525”的小数点位数为6,经度“120.1258”的小数点位数为4,经度“120.132”的小数点位数为3。在该三个经度中,经度120.125525的小数点位数最大,所以最大小数点位数为6。根据最大小数点位数,确定一个整数值为106=1000000。将该三个经度分别与1000000相乘,得到三个整数的经度,分别为120125525,120125800和120132000。可选的,对于整型的数据,在获取到m个整型的数据时,该m个整型的数目就是m个整数,所以将该m个整型的数据作为m个目标数据。可选的,对于时间类型的数据,在获取到m个时间类型的数据时,该m个时间类型的数据也是m个整数值,所以将该m个时间类型的数据作为m个目标数据。步骤202:获取第一差值集合,第一差值集合包括m-1个第一差值,第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,第i个目标数据是数据序列中的第i个数据点中的数据。在本步骤中,对于获取的m个目标数据,将第二个目标数据减去第一个目标数据得到第一个第一差值,将第三个目标数据减去第二个目标数据得到第二个第一差值,……,将第m个目标数据减去第m-1个目标数据得到第m-1个第一差值,如此总共得到m-1个第一差值并组成第一差值集合。第一差值集合中的每个第一差值可能相同,也可能不同。例如,假设该m个目标数据为时空轨迹数据中的m个时间,该m个时间分别为采集m个位置数据的时间,通常在采集时空轨迹数据的位置数据时采用周期性采集的方式。这样对于该m个时间,将第二个时间减去第一个时间得到第一个第一时间差值,将第三个时间减去第二个时间得到第二个第一时间差值,……,将第m个时间减去第m-1个时间得到第m-1个第一时间差值,如此总共得到m-1个第一时间差值,该m-1个第一时间差值均等于采集周期的周期长度,即第一差值集合包括的每个第一时间差值相同。再如,假设该m个目标数据为时空轨迹数据中的m个速度,将第二个速度减去第一个速度得到第一个第一速度差值,将第三个速度减去第二个速度得到第二个第一速度差值,……,将第m个速度减去第m-1个速度得到第m-1个第一速度差值,如此总共得到m-1个第一速度差值。由于汽车在行驶的过程速度是不断变化的,使得该m-1个第一速度差值不同,即第一差值集合包括的每个第一速度差值不同。还例如,假设该m个目标数据为时空轨迹数据中的m个经度,将第二个经度减去第一个经度得到第一个第一经度差值,将第三个经度减去第二个经度得到第二个第一经度差值,……,将第m个经度减去第m-1个经度得到第m-1个第一经度差值,如此总共得到m-1个第一经度差值。由于汽车在行驶的过程位置是不断变化的,使得该m-1个第一经度差值不同,即第一差值集合包括的每个第一经度差值不同。或者,假设该m个目标数据为时空轨迹数据中的m个纬度,将第二个纬度减去第一个纬度得到第一个第一纬度差值,将第三个纬度减去第二个纬度得到第二个第一纬度差值,……,将第m个纬度减去第m-1个纬度得到第m-1个第一纬度差值,如此总共得到m-1个第一纬度差值。由于汽车在行驶的过程位置是不断变化的,使得该m-1个第一纬度差值不同,即第一差值集合包括的每个第一纬度差值不同。需要说明的是:由于该m个目标数据均为整数值,所以第一差值集合中的每个第一差值也为整数值。在第一差值集合中有的第一差值可能是正数,有的第一差值可能是负数。即第一差值集合中的每个第一差值可能均为正数,或者,均为负数,或者,第一差值集合中有正数的第一差值和负数的第一差值。步骤203:在第一差值集合中的每个第一差值不同时,根据第一差值集合中的第一差值获取最大公约数。该最大公约数据能够被第一差值集合中的每个第一差值整除。步骤204:采用指定压缩编码算法,对第一差值集合进行压缩编码得到编码信息,保存该参数对应的编码数据,该编码数据包括第一压缩编码方式、第一个目标数据、该最大公约数和该编码信息,该编码信息用于描述第一差值集合,结束返回。可选的,指定压缩编码算法包括simple8b算法和符号转换算法,simple8b算法用于对至少一个正整数进行压缩编码,在该至少一个正整数中的每个整数值越小,simple8b算法压缩编码的效率越高。可选的,simple8b算法用于将至少一个正整数压缩成64比特的压缩数据。可选的,参见下表1,simple8b算法定义了多种选择器标识(用selector表示),每种选择器标识对应一个编码位数(用bits表示)和编码数目(用n表示)。一个selector对应的bits和n,用于表示对n个正整数进行编码,得到一个64比特的压缩数据,该n个正整数中的每个正整数小于2bits。该压缩数据的前四个比特包括该selector,该压缩数据的后60个比特包括对n个正整数进行编码得到的n个码字。每个码字的长度等于bits,即每个码字的比特数目等于bits。表1selector0123456789101112131415bits0012345678101215203060n24012060302015121087654321例如,参见表1,selector“5”对应的bits为“4”,以及对应的n为“15”,用于表示对15个小于16的正整数进行编码,得到每个正整数对应的码子,总共得15个码字,每个码字的长度为4比特。所以对于编码得到的一个64比特的压缩数据,该压缩数据的前四个比特为selector“5”,后60个比特为该15个码字。所谓对正整数进行编码,就是将该正整数转换为一个二进制数据的码字,该码字长度等于bits。例如,对于整数15,将该整数15编码成一个四比特长度的码字1110。可选的,符号转换算法用于将原始值转换成成一个正数的编码值,即在该原始值无论为正数或负数,符号转换算法将该原始值转换成一个符号为正数的编码值。可选的,符号转换法可以为zigzag等算法。例如,参见下表2,对于原始值-1,使用zigzag算法可以将原始值转换成编码值1。表2原始值编码值00-11-23在本步骤中,可以通过如下2041至2043的操作,对第一差值集合进行压缩编码。该2041至2043的操作分别为:2041:将第一差值集合中的每个第一差值与该最大公约数相除,得到第二差值集合,第二差值集合包括m-1个第二差值。可选的,在该最大公约数为1,可以将第一差值集合作为第二差值集合。2042:采用指定压缩编码算法,对第二差值集合进行压缩编码,得到编码信息。可选的,对于2042的操作,在实现时可以通过如下(1)-(3)操作来实现。该(1)-(3)分别为:(1):使用符号转换算法将第二差值集合中的每个第二差值,转换成符号为正数的编码值,得到第三差值集合。可选的,操作(1)是一个可选的操作,在第二差值集合中的每个第二差值均为正整数的情况下,则将第二差值集合作为第三差值集合,直接对第三差值集合执行如下操作(2)。(2):在第三差值集合中获取第四差值集合,第四差值集合包括位置连续的n个编码值,且该n个编码值均小于2bits。第四差值集合是第三差值集合的子集。在首次从第三差值集合中获取第四差值集合时,从第三差值集合中的第一个编码值至第n个编码值,且第一个编码值至第n个编码值均小于2bits,n为大于或等于0的整数,bits为大于或等于0的整数。假设n=15,即第四差值集合包括位置连续的15个编码值,且该15个编码值均小于24,即bits=4。(3):根据编码数目n和编码位数bits获取选择器标识selector,将该选择器标识selector和第四差值集合编码一个压缩数据。可选的,将第四差值集合中的每个编码值转换成二进制的码字,每个码字的长度等于bits,即得到比特数等于bits的n个码字,将获取的selector和该n个码字组成一个压缩数据。例如,根据编码数目“15”和编码位数“4”获取selector为5,将第四差值集合中15个编码值转换成15个长度为4比特的码字,将该selector为5和该15个码字组成一个压缩数据,该压缩数据的前四个比特包括该selector“5”,后60比特包括15个码字。重复执行上述操作(2)和(3)将第三差值集合中的所有编码值编码成一个个压缩数据,该一个个压缩数据组成了编码信息。2043:保存该参数对应的编码数据,该编码数据包括第一压缩编码方式、第一个目标数据、该最大公约数和该编码信息,该编码信息用于描述第一差值集合。可选的,在该参数为经度或纬度等浮点型的数据时,还保存该最大小数点位数。步骤205:在第一差值集合中的每个第一差值相同时,保存该参数对应的编码数据,该编码数据包括第二压缩编码方式、第一个目标数据、第一差值和第一差值集合中的第一差值数目m-1,结束返回。可选的,对于序列数据中的布尔型的数据,布尔型的数据为数据true或数据false。对于序列数据中的某个布尔型的参数,从该数据序列中获取该参数对应的m个数据(包括数据true和/或数据false),保存该参数对应的编码数据,该编码数据包括第三压缩编码方式和m个比特,该m个比特分别与该m个数据一一对应。可选的,可以使用比特值1表示数据true,使用比值0表示数据false。或者,可以使用比特值0表示数据true,使用比值1表示数据false。可选的,需要说明是:对于序列数据中的字符型的数据时,对于序列数据中的某个字符型的参数,从数据序列中获取该参数对应的m个数据,在该参数对应的m个数据相同时,保存该参数对应的编码数据,该编码数据包括第四压缩方式和该参数对应的一个数据和数据数目m。在该参数对应的m个数据不同时,保存该参数对应的编码数据,该编码数据包括第五压缩方式和该参数对应的m个数据。其中,需要说明的是:在上述2042的操作中,在转换后的第二差值集合中存在大于或等于260的第二差值,则无法使用指定压缩编码算法对第二差值集合进行压缩编码,此时保存该参数对应的编码数据,该编码数据包括第五压缩方式和该参数对应的m个目标数据。由于待压缩的数据序列的一个数据点中包括n个数据,重复上述步骤201至205可以得到n个编码数据,每个编码数据对应的参数不同,保存该n个编码数据。在本申请实施例中,获取m个目标数据,m为大于1的整数,该m个目标数据属于同一个参数;获取第一差值集合,第一差值集合包括m-1个第一差值,第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m;对第一差值集合进行压缩编码得到编码数据,该编码数据包括压缩编码方式、第一个目标数据和编码信息,该编码信息用于描述第一差值集合。由于第一差值集合中的每个差值小于目标数据,所以在对第一差值集合进行编码时,得到的编码信息的数据量远小于该m个目标数据的数据量,从而存储该参数对应的编码数据,可以减小对存储空间的消耗。参见图3,本申请实施例提供了一种解压数据的方法,所述方法包括:步骤301:获取编码数据,该编码数据包括压缩编码方式、第一个目标数据和编码信息,该编码信息用于描述第一差值集合,第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,m为大于1的整数。步骤302:对该编码数据进行解压,得到m个目标数据。可选的,对于图1所示的实施方式,本申请实施例提供了一种解压数据的实现实例。参见图4,该实现实例包括:步骤401:获取保存的一个参数对应的编码数据,该编码数据包括压缩编码方式、第一个目标数据和编码信息,该编码信息用于描述第一差值集合,第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,m为大于1的整数。步骤402:在该压缩编码方式为第一压缩编码方式,采用指定压缩编码算法,对该编码信息进行解压,得到第二差值集合,第二差值集合包括m-1个第二差值。在该压缩编码方式为第一压缩编码方式,该压缩数据还包括第一差值集合的最大公约数。该编码数据中的压缩信息包括一个个压缩数据。在本步骤中,可以通过如下4021至4023的操作,对第一差值集合进行压缩编码。该4021至4023的操作分别为:4021:采用指定压缩编码算法,对编码信息进行解压,得到第三差值集合,第三差值集合包括m-1个编码值。可选的,指定压缩编码算法为simple8b算法,从该编码信息中获取压缩数据,从该压缩数据的前四个比特中读取选择器标识selector,根据该选择器标识selector,获取对应的编码位数bits和编码数目n,根据该编码位数bits,从该压缩数据的后60个比特中解压出n个编码值。按上述方式对该编码信息中的每个压缩数据进行解压,得到m-1个编码值,即得到第三差值集合。4022:采用符合转换算法,对第三差值集合中的每个编码值进行转换,得到每个编码值的原始值,得到第二差值集合,第二每个编码值的原始值为第二差值集合中的m-1个第二差值。步骤403:将最大公约数与第二差值集合中的每个第二差值相乘,得到第一差值集合,第一差值集合包括m-1个第一差值。步骤404:根据第一个目标数据和第一差值集合,获取m个目标数据,结束返回。在实现时,将第一个目标数据累加到第一个第一差值得到第二个目标数据,将第二个目标数据累加到第二个第一差值得到第三个目标数据,……,将第m-1个目标数据累加到第m-1个第一差值得到第m个目标数据。步骤405:在该压缩编码方式为第二压缩编码方式,该编码信息包括一个第一差值和第一差值集合中的第一差值数目m-1,根据第一个目标数据和第一差值获取m个目标数据,结束返回。在实现时,将第一个目标数据累加到该第一差值,得到一个累加值,将第二个目标数据至第m个目标数据均设置为该累加值。可选的,在该参数对应的数据类型为浮点型的情况下,该参数对应的编码数据还包括最大小数点位x,则根据最大小数点位确定一个整数值10x,将该m个目标数据分别与该整数值相除,得到该参数对应的m个浮点型的数据。可选的,该压缩编码方式为第三压缩编码方式时,即该编码数据包括第三压缩编码方式和m个比特,该m个比特分别与该m个布尔型的数据一一对应。基于该m个比特,确定该参数对应的m个布尔型的数据。可选的,该压缩编码方式为第四压缩编码方式时,即该编码数据包括第四压缩方式和该参数对应的一个数据和数据数目m,将该参数对应的m个数据分别设置为该一个数据。可选的,重复执行上述401至405的操作,得到n个参数中的每个参数对应的m个数据,从而得到一个数据序列。在本申请实施例中,由于编码数据包括压缩编码方式、第一个目标数据和编码信息,该编码信息用于描述第一差值集合,该第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,m为大于1的整数;这样根据该编码信息进行解压,得到第一差值集合,根据第一个目标数据和第一差值集合,获取m个目标数据。如此,可以解压出该目标数据,其中由于第一差值集合中的差值小于目标数据,这样在压缩第一差值集合得到的编码数据,小于该m个目标数据,如此在存储该编码数据时,可以减小对存储空间的消耗。下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。参见图5,本申请实施例提供了一种压缩数据的装置500,所述装置500包括:第一获取模块501,用于获取m个目标数据,m为大于1的整数,所述m个目标数据是属于同一个参数的参数值;第二获取模块502,用于获取第一差值集合,所述第一差值集合包括m-1个第一差值,所述第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m;压缩模块503,用于对所述第一差值集合进行压缩编码得到编码数据,所述编码数据包括压缩编码方式、第一个目标数据和编码信息,所述编码信息用于描述所述第一差值集合。可选的,所述m个目标数据的类型为整型或时间类型。可选的,所述第一获取模块501,用于:获取m个浮点型的数据,所述m个浮点型的数据属于同一个参数;根据所述m个浮点型的数据中的最大小数点位数,将所述m个浮点型的数据转换成m个整型的数据,所述m个整型的数据为所述m个目标数据。可选的,所述压缩模块503,用于:在所述第一差值集合中的各第一差值不同时,根据所述第一差值集合中的第一差值获取最大公约数;采用指定压缩编码算法,对所述第一差值集合进行压缩编码得到编码信息,所述编码数据包括第一压缩编码方式、第一个目标数据、所述最大公约数和所述编码信息。可选的,所述压缩模块503,用于:在所述最大公约数不等于1时,将所述第一差值集合中的一个第一差值与所述最大公约数据相除,得到第二差值集合,所述第二差值集合包括m-1个第二差值;采用指定压缩编码算法,对所述第二差值集合进行压缩编码得到编码信息。可选的,在所述第一差值集合中的各第一差值相同时,所述编码数据包括第二压缩编码方式、第一个目标数据和所述编码信息、所述编码信息包括一个第一差值和第一差值集合中的第一差值数目m-1。在本申请实施例中,由于第二获取模块获取第一差值集合,第一差值集合包括m-1个第一差值,第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m;压缩模块对第一差值集合进行压缩编码得到编码数据,该编码数据包括压缩编码方式、第一个目标数据和编码信息,该编码信息用于描述第一差值集合。由于第一差值集合中的每个差值小于目标数据,所以在对第一差值集合进行编码时,得到的编码信息的数据量远小于该m个目标数据的数据量,从而存储该参数对应的编码数据,可以减小对存储空间的消耗。参见图6,本申请实施例提供了一种解压数据的装置600,所述装置600包括:获取模块601,用于获取编码数据,所述编码数据包括压缩编码方式、第一个目标数据和编码信息,所述编码信息用于描述第一差值集合,所述第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,m为大于1的整数;解压模块602,用于对所述编码数据进行解压,得到m个目标数据。可选的,在所述压缩编码方式为第一压缩编码方式,所述压缩数据还包括所述第一差值集合的最大公约数,所述解压模块602,用于:采用指定压缩编码算法,对所述编码信息进行解压,得到第二差值集合,所述第二差值集合包括m-1个第二差值;将所述最大公约数与所述第二差值集合中的每个第二差值相乘得到第一差值集合;根据所述第一个目标数据和所述第一差值集合,获取所述m个目标数据。可选的,在所述压缩编码方式为第二压缩编码方式,所述编码信息包括一个第一差值和第一差值集合中的第一差值数目m-1,所述解压模块602,用于:根据所述第一个目标数据和所述第一差值获取所述m个目标数据。可选的,所述编码数据还包括最大小数点位数;所述装置还包括:转换模块,用于根据所述最大小数点位数,将所述m个目标数据转换成浮点型的数据。在本申请实施例中,由于编码数据包括压缩编码方式、第一个目标数据和编码信息,该编码信息用于描述第一差值集合,该第一差值集合中的第一差值为第i个目标数据与第i-1个目标数据之间的差值,i=2、3、……、m,m为大于1的整数;这样解压模块根据该编码信息进行解压,得到第一差值集合,根据第一个目标数据和第一差值集合,获取m个目标数据。如此,可以解压出该目标数据,由于第一差值集合中的差值小于目标数据,这样在压缩第一差值集合得到的编码数据,小于该m个目标数据,如此在存储该编码数据时,可以减小对存储空间的消耗。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。图7示出了本发明一个示例性实施例提供的终端700的结构框图。该终端700可以是便携式移动终端,比如:智能手机、平板电脑、笔记本电脑或台式电脑。终端700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。通常,终端700包括有:处理器701和存储器702。处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器701所执行以实现本申请中方法实施例提供的压缩数据的方法或解压数据的方法。在一些实施例中,终端700还可选包括有:外围设备接口703和至少一个外围设备。处理器701、存储器702和外围设备接口703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口703相连。具体地,外围设备包括:射频电路704、触摸显示屏705、摄像头706、音频电路707、定位组件708和电源709中的至少一种。外围设备接口703可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器701和存储器702。在一些实施例中,处理器701、存储器702和外围设备接口703被集成在同一芯片或电路板上;在一些其他实施例中,处理器701、存储器702和外围设备接口703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。射频电路704用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路704包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路704还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。显示屏705用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏705是触摸显示屏时,显示屏705还具有采集在显示屏705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器701进行处理。此时,显示屏705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏705可以为一个,设置终端700的前面板;在另一些实施例中,显示屏705可以为至少两个,分别设置在终端700的不同表面或呈折叠设计;在再一些实施例中,显示屏705可以是柔性显示屏,设置在终端700的弯曲表面上或折叠面上。甚至,显示屏705还可以设置成非矩形的不规则图形,也即异形屏。显示屏705可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。摄像头组件706用于采集图像或视频。可选地,摄像头组件706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。音频电路707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器701进行处理,或者输入至射频电路704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器701或射频电路704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路707还可以包括耳机插孔。定位组件708用于定位终端700的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件708可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。电源709用于为终端700中的各个组件进行供电。电源709可以是交流电、直流电、一次性电池或可充电电池。当电源709包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。在一些实施例中,终端700还包括有一个或多个传感器710。该一个或多个传感器710包括但不限于:加速度传感器711、陀螺仪传感器712、压力传感器713、指纹传感器714、光学传感器715以及接近传感器716。加速度传感器711可以检测以终端700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器711可以用于检测重力加速度在三个坐标轴上的分量。处理器701可以根据加速度传感器711采集的重力加速度信号,控制触摸显示屏705以横向视图或纵向视图进行用户界面的显示。加速度传感器711还可以用于游戏或者用户的运动数据的采集。陀螺仪传感器712可以检测终端700的机体方向及转动角度,陀螺仪传感器712可以与加速度传感器711协同采集用户对终端700的3d动作。处理器701根据陀螺仪传感器712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。压力传感器713可以设置在终端700的侧边框和/或触摸显示屏705的下层。当压力传感器713设置在终端700的侧边框时,可以检测用户对终端700的握持信号,由处理器701根据压力传感器713采集的握持信号进行左右手识别或快捷操作。当压力传感器713设置在触摸显示屏705的下层时,由处理器701根据用户对触摸显示屏705的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。指纹传感器714用于采集用户的指纹,由处理器701根据指纹传感器714采集到的指纹识别用户的身份,或者,由指纹传感器714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器714可以被设置终端700的正面、背面或侧面。当终端700上设置有物理按键或厂商logo时,指纹传感器714可以与物理按键或厂商logo集成在一起。光学传感器715用于采集环境光强度。在一个实施例中,处理器701可以根据光学传感器715采集的环境光强度,控制触摸显示屏705的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏705的显示亮度;当环境光强度较低时,调低触摸显示屏705的显示亮度。在另一个实施例中,处理器701还可以根据光学传感器715采集的环境光强度,动态调整摄像头组件706的拍摄参数。接近传感器716,也称距离传感器,通常设置在终端700的前面板。接近传感器716用于采集用户与终端700的正面之间的距离。在一个实施例中,当接近传感器716检测到用户与终端700的正面之间的距离逐渐变小时,由处理器701控制触摸显示屏705从亮屏状态切换为息屏状态;当接近传感器716检测到用户与终端700的正面之间的距离逐渐变大时,由处理器701控制触摸显示屏705从息屏状态切换为亮屏状态。本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1