数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备与流程

文档序号:23505455发布日期:2021-01-01 18:14阅读:109来源:国知局
数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备与流程

本申请涉及计算机技术领域,尤其涉及一种数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备。



背景技术:

随着通信技术的发展,为了满足用户基于电子设备对信息、资源和通信等性能需求,会涉及到对电子设备的数据更新或数据升级等场景,在这些场景中,为了节省数据的开销(如内存开销、数据传输开销等)会对数据进行压缩。

目前,在数据压缩的过程中,电子设备通常会采用固定的压缩算法对原始文件数据进行压缩处理,生成压缩处理后的数据压缩包。



技术实现要素:

本申请实施例提供了一种数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备,可以提高数据压缩的压缩率。本申请实施例的技术方案如下:

第一方面,本申请实施例提供了一种数据压缩方法,所述方法包括:

获取原始文件数据包含的至少一类特征数据,获取所述至少一类特征数据中各类所述特征数据的数据信息;

基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧;

将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

第二方面,本申请实施例提供了一种数据解压方法,所述方法包括:

获取数据压缩包;

对所述数据压缩包进行解压缩,得到至少一类数据帧;

基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。

第三方面,本申请实施例提供了一种数据压缩装置,所述装置包括:

数据信息获取模块,用于获取原始文件数据包含的至少一类特征数据,获取各类所述特征数据的数据信息;

数据信息编码模块,用于基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧;

数据压缩包生成模块,用于将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

第四方面,本申请实施例提供了一种数据解压装置,所述装置包括:

压缩包获取模块,用于获取数据压缩包;

压缩包解压模块,用于对所述数据压缩包进行解压缩,得到至少一类数据帧;

数据帧解码模块,用于基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。

第五方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。

第六方面,本申请实施例提供一种电子设备,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。

本申请一些实施例提供的技术方案带来的有益效果至少包括:

在本申请一个或多个实施例中,第一电子设备获取原始文件数据包含的至少一类特征数据,获取所述至少一类特征数据中各类所述特征数据的数据信息,基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧,将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。通过获取对原始文件数据进行细分挖掘后的至少一类特征数据(也即数据编译特征),再对各类特征数据进行数据编码,可以避免直接基于固定的压缩算法进行数据压缩时压缩率不高的问题,提高了数据压缩的压缩率,节省了数据的开销(如内存开销、数据传输开销等)。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种数据压缩方法的流程示意图;

图2是本申请实施例提供的另一种数据压缩方法的流程示意图;

图3是本申请实施例提供的数据压缩方法涉及的一种重复字节计算的场景示意图;

图4是本申请实施例提供的数据压缩方法涉及的一种对原始文件数据进行分块的场景示意图;

图5是本申请实施例提供的一种数据解压方法的流程示意图;

图6是本申请实施例提供的另一种数据解压方法的流程示意图;

图7是本申请实施例提供的一种数据压缩装置的结构示意图;

图8是本申请实施例提供的一种数据信息获取模块的结构示意图;

图9是本申请实施例提供的一种数据压缩模块的结构示意图;

图10是本申请实施例提供的一种差分字节信息获取单元的结构示意图;

图11是本申请实施例提供的另一种数据压缩装置的结构示意图;

图12是本申请实施例提供的一种数据解压装置的结构示意图;

图13是本申请实施例提供的一种数据帧解码模块的结构示意图;

图14是本申请实施例提供的另一种数据解压装置的结构示意图;

图15是本申请实施例提供的一种电子设备的结构示意图;

图16是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

在相关技术中,数据压缩的过程,电子设备通常会采用固定的压缩算法对原始文件数据进行压缩处理,直接生成压缩处理后的数据压缩包,然而原始文件数据在数据编译时,通常会存在相应的数据编译特征,如重复字节特征、差分字节特征,这部分数据编译特征所对应的数据会存在一定的数据代码相似性或数据代码可利用性,若直接基于固定的压缩算法对原始文件数据进行压缩,会导致数据压缩的压缩率较低。

下面结合具体的实施例对本申请进行详细说明。

在一个实施例中,如图1所示,特提出了一种数据压缩方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的数据压缩装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,以下为了释义的方便,以数据压缩装置为第一电子设备进行详细释义。

具体的,该数据压缩方法包括:

步骤s101:获取原始文件数据包含的至少一类特征数据,获取所述至少一类特征数据中各类所述特征数据的数据信息。

所述原始文件数据是数据库(如用于升级设备的用户数据库)中的数据,或者是设备用户、设备开发者、后台管理人员等所存储使用的各种数据,通常原始文件数是未经过处理或简化的数据,这些数据可能是也可能不是机器可读形式。它构成了物理存在的数据。原始数据有多种存在形式,如文本数据、图像数据、音频数据、升级数据或者几种数据混合存在。

所述特征数据在本申请实施例中可以理解为基于原始文件数据中的数据编译特征通过执行本申请实施例的所述数据压缩方法的全部或部分技术,而对原始文件数据进行细分、挖掘而确定的所包含的至少一类特征数据,可以理解的是基于所述至少一类特征数据进行编码可以大幅提高原始文件数据编码时所包含的已编码字节或数据段的复用率,从而实现在对原始文件数据编译时对特征数据进行复用,以提高原始文件数据在数据压缩时的压缩率。以一种具体的实施场景为例:如嵌入式系统精简指令集,其中,16位系统是双字节对齐,32位系统是4字节对齐,这样在进行压缩的时候原始文件数据长度的压缩编码策略上,会在2,4字节上的重复率或复用率最高;其次,在数据编译结构上,比如循环语句,switch,if等这些基本的语句代码段会具有一定的特征属性,如重复性、差分性、可复制性,进一步的,数据结构中相似函数的编译结构也会有一定的代码相似性,而这一部分代码可以通过对前述编译代码进行复用而实现代码的还原。又如,实际应用环境中,如在原始文件数据中会照协议标准进行数据重复字节的填充,填充的策略通常可以是1-16字节的重复数据,还有flash空间中大量的初始变量的赋值区域,也会有大片连续,有规律的由重复字节构成的数据段,将这部分数据通过一定数据编译处理会比相关技术中对原始文件数据采用某种压缩算法的压缩率要高。

具体的,通过在对原始文件数据编译时数据结构的分析处理,以及基于预先定义设置的各类特征数据的数据结构,对原始文件数据中各类特征数据进行特征数据提取,如按照一定长度(如12个字节)进行分段提取或分块提取,并按照各类特征数据所对应的编码规则确定特征数据的数据信息;

其中,所述数据信息用于对数据信息对应的特征数据进行数据帧编码,所述数据信息至少可以是特征数据中特征字节(如可复用的差分字节、可复用的重复字节等等)、特征数据对应的编码后的帧顺序、特征数据对应的特征类型、特征字节长度等等。

可选的,所述特征数据的类型可以是重复字节数据,如在汽车的控制器上flash空间会有强制20%左右的预留需求,通常这部分数据按照协议标准进行数据填充,填充的策略通常是1-16字节的重复数据,还有flash中大量的初始变量的赋值区域,会有大片连续,有规律的填充重复数据,如:数据段:fffffff……,即以重复字节“f”重复构成该数据段,又如数据段:55aa55aa……,即以重复字节“55aa”重复构成该数据段,等等。

可选的,所述特征数据的类型可以是差分字节数据,所述差分字节数据可以基于原始文件数据中“差分字节数据”的目标数据段(全部或部分已经编译的连续字节)按照一定的差分规则进行数据编译,且差分字节数据编译后的数据与原始数据相比,所占字节空间减少,提高了数据的压缩率。

进一步的,所述差分规则可以是:差分字节数据无法基于原始文件数据中已编译的数据进行参考还原得到(如进行差分还原或填充还原等),也即与原始文件数据中已编译的数据不一致的新增数据。这部分数据在数据编码时可以基于新增数据编码对应的数据信息,编码为相应的数据帧。其中,新增数据的数据信息可以是特征数据中新增字节、特征数据对应的编码后的帧顺序、特征数据对应的特征类型、特征字节长度等等,在一些实施例中,所述“差分字节数据无法基于原始文件数据中已编译的数据进行参考还原得到...”对应的差分字节数据可称为新增数据类型,所述新增数据类型的数据信息可称为第一差分信息。

所述差分规则可以是:差分字节数据可由基于原始文件数据中已编译的数据段a和当前的差分字节段a按照设定的差分计算方式还原得到。也即通过按照设定的差分计算方式可以从在解码时从“差分字节数据”前面已经还原的数据(如已编译的数据段a)中找到近似的数据段进行借鉴还原;所述差分字节段a可以理解为第一电子设备对原始文件数据中已编译的数据段a与差分字节数据进行逐个差分对比处理,计算得到的差分字节段a,所述差分字节段为差分字节数据对应的数据信息中的一种元素。进一步的,所述差分计算方式可以是逻辑运算,如异或、同或、或、与、非等等。如,上述数据段a与差分字节数据进行同或运算,可以得到差分字节段a,可以理解的是数据还原时,基于差分字节段a以及数据段a进行异或运算,即可得到原始的差分字节数据。在一些实施例中,所述“差分字节数据可由基于原始文件数据中已编译的数据段a和当前的差分字节段a按照设定的差分计算方式...”对应的差分字节数据可称为第一差分数据类型,所述第一差分数据类型的数据信息可称为第二差分信息。

所述差分规则可以是:差分字节数据可由基于原始文件数据中已编译的数据段b(如n字节的数据)直接复制得到,也即当前的差分字节数据可在原始文件数据中已编译的数据中找到可以直接进行复制的目标数据(即数据段b),可以理解的是目标数据(即数据段b)与差分字节数据的数据完全一致,在一些实施例中,所述“差分字节数据可由基于原始文件数据中已编译的数据段b(如n字节的数据)直接复制得到...”对应的差分字节数据可称为第二差分数据类型,所述第二差分数据类型的数据信息可称为第三差分信息。

具体的,一方面,第一电子设备可以对原始文件数据进行重复字节分块提取,即在原始文件数据所包含的所有字节中进行重复字节计算,确定至少一个重复字节块,所述重复字节块由重复字节重复而构成该数据段,如:数据段:fffffff……,即以重复字节“f”重复构成该数据段。

其中,重复字节计算的方式可以是设置一字节数(如两个字节)用于重复字节比对,采用对原始文件数据从数据起始位置至数据末端位置按照“字节数(如两个字节)”进行循环对比,如,从头至尾依次在原始文件数据提取当前两个字节,将当前的两个字节与“两个字节”之前的上一字节进行对比,相同即获取当前两个字节的下一字节,执行所述将当前的两个字节与“当前的两个字节”之前的上一字节进行对比的步骤,不相同即确定一个由至少一个重复字节(如两个字节构成的重复字节)构成的重复字节块;

再获取重复字节块后的下一“设置的字节数(如两个字节)”进行循环对比,如,在原始文件数据提取重复字节块后的当前两个字节,将当前的两个字节与“两个字节”之前的上一字节进行对比,相同即获取当前两个字节的下一字节,执行所述将当前的两个字节与“当前的两个字节”之前的上一字节进行对比的步骤,不相同即确定一个由至少一个重复字节(如两个字节构成的重复字节)构成的另一重复字节块;

基于上述方式,对原始文件数据进行遍历,依次基于设置的字节数进行循环对比可以在原始文件数据中确定至少一个重复字节块,从而完成对原始文件数据所包含的所有字节中进行重复字节计算的过程,同时再确定重复字节块之后,可以随之确定重复字节块对应的数据信息,如特征数据“重复字节块”数据信息至少包括重复字节块对应的重复字节、重复字节对应的填充长度(即重复字节的字节大小)、重复字节对应的第一数据长度(即重复字节块的字节大小)、重复字节块对应的帧顺序。

另一方面,第一电子设备可以对原始文件数据进行差分字节分块比对,即在原始文件数据所包含的所有字节中基于预设的分块长度进行分块,得到至少两个数据块,从所述至少两个数据块中确定当前待比对的目标数据块,然后将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理,可以得到所述目标数据块的差分字节数据。如,按分块长度1kb对原始文件数据进行分块,然后进行循环差分对比,具体为第二块和第一块对比,第三块和前两块对比,第4块和前三块进行对比....第n块与前面的n-1个数据块进行对比,目的就是从当前数据块前的已编译的原始数据中找到后续数据(即当前数据块)的差分参考依据,在差分比对时,即按照上述至少一类差分字节数据的差分规则进行对比,从而得到至少一类差分字节数据,以及可以基于差分字节数据进行数据结构解析可以获取到差分字节数据对应的数据信息,如,数据信息至少可以是特征数据中特征字节(如可复用的差分字节、可复用的重复字节等等)、特征数据对应的编码后的帧顺序、特征数据对应的特征类型、特征字节长度等等。

步骤s102:基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧。

具体的,第一电子设备在基于原始文件数据确定至少一类特征数据,以及进一步确定各类特征数据的数据信息之后,可以基于预先设置的各类特征数据所对应的编码方式,分别根据相应的编码方式对特征数据的数据信息进行数据编码,从而得到该类型的数据信息所对应的数据帧。

具体的,当所述特征数据为重复字节数据时,则终端预先设置有重复字节数据对应的第一编码方式,按照第一编码方式对重复字节数据所包含的数据信息进行数据编码,从而得到第一类型数据帧,其中,第一类型数据帧为基于重复字节数据的数据信息对应生成的数据帧。

可以理解的是,第一编码方式会对应一个帧数据的编码结构,以及编码结构中组成元素所需填入的数据元素,如:第一编码方式可以是至少基于数据信息中的填充长度(即重复字节的字节大小)、所述重复字节对应的第一数据长度(即重复字节块的字节大小)、以及所述重复字节在所有数据帧中的第一顺序(即编码该重复字节所对应的帧顺序)生成第一类型帧数据。

在一种具体的实施场景中,第一类型数据帧可由帧头、数据段、帧尾构成。帧头在按照第一编码方式进行编码时可以填入帧头、帧顺序、以及帧类型,如帧头可以填入固定字节“0x55”、帧长度即整个第一类型数据帧数据段的长度,帧类型可以填入第一类型数据帧所对应的固定字节,如“0x02”。所述数据段用于填入帧数据,也即重复字节、重复字节对应的第一数据长度(即重复字节块的字节大小)、填充长度(即重复字节的字节大小)。所述帧尾可以填入一个用于对第一类型帧数据进行校验的校验码,如帧数据crc8值,在一些实施例中,所述帧尾也可以填入一个校验码以及一个固定的帧尾字节,如0xaa。

具体的,当所述特征数据为差分字节数据时,则终端预先设置有差分字节数据对应的第二编码方式,按照第二编码方式对差分字节数据的数据信息所包含的数据信息进行数据编码,从而得到第二类型数据帧,其中,第二类型数据帧为基于差分字节数据的数据信息对应生成的数据帧。

可以理解的是,第二编码方式会对应一个帧数据的编码结构,以及编码结构中组成元素所需填入的数据元素。

如:当差分数据对应的差分字节信息为第一差分信息时,第二编码方式可以是基于差分数据(如第一差分数据)、差分数据对应的数据长度、差分数据对应的在所有数据帧中的帧顺序生成第二类型帧数据。

又如:当差分数据对应的差分字节信息为第二差分信息时,第二编码方式可以是基于差分数据(如第二差分数据)、差分数据对应的在所有数据帧中的帧顺序、差分数据在原始文件数据中的参考数据(即可以差分借鉴还原的数据)、参考数据的数据地址以及数据长度(即这一帧数据编码还原时对应的原始数据长度)进行数据编码,从而得到第二类型数据帧,其中,第二类型数据帧为基于差分字节数据的数据信息对应生成的数据帧。

又如:当差分数据对应的差分字节信息为第三差分信息时,第二编码方式可以是基于差分数据(如第三差分数据)、差分数据对应的在所有数据帧中的帧顺序、差分信息对应的数据长度(即这一帧数据编码还原时对应的原始数据长度)、差分数据在原始文件数据中的可直接复制的数据地址进行数据编码,从而得到第二类型数据帧,其中,第二类型数据帧为基于差分字节数据的数据信息对应生成的数据帧。

以上只对数据编码过程进行概括,具体数据帧编码的实施过程可参见下一实施中的相关部分。

在一些实施例中,所述特征数据的类型可以基于差分规则确定,基于不同的差分规则可以生成不同的数据帧,具体可视实际应用场景进行确定。

步骤s103:将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

具体的,在按照上述方式对原始文件数据的数据特征进行数据挖掘,提取相应的特征数据并对其进行数据编码,可以充分挖掘原始文件数据的数据特征,提高编码效率,同时减小原始文件数据进行编码时所占的存储空间,第一电子设备还可以在对各类所述数据信息的数据帧编码完成后,可以对各类数据帧进行压缩处理,所述数据压缩处理可以理解为不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,实际应用中,可以采用相关压缩算法对已编码完成后的各类数据帧进行压缩,从而减少数据的冗余和存储的空间。常见的压缩算法包括有损压缩和无损压缩,所述压缩算法可以是霍夫曼(huffman)算法、lzw(lenpel-ziv&welch)压缩算法、lzr(lz-renau)压缩方法,等等。

在本申请实施例中,第一电子设备获取原始文件数据包含的至少一类特征数据,获取各类所述特征数据的数据信息,基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧,将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。通过获取对原始文件数据进行细分挖掘后的至少一类特征数据(也即数据编译特征),然后对各类特征数据进行数据编码,可以避免直接基于固定的压缩算法进行数据压缩时压缩率不高的问题,提高了数据压缩的压缩率,节省了数据的开销(如内存开销、数据传输开销等)。

请参见图2,图2是本申请提出的一种数据压缩方法的另一种实施例的流程示意图。具体的:

步骤s201:获取原始文件数据中至少一个重复字节,基于所述重复字节对所述原始文件数据进行分割计算处理,得到所述重复字节对应的重复字节信息。

所述重复字节信息包括所述重复字节、填充长度、所述重复字节对应的第一数据长度以及所述重复字节在所有数据帧中的第一顺序。

具体的,第一电子设备可以对原始文件数据进行重复字节计算,即对重复字节分块提取(也可理解为重复字节分字节提取),即在原始文件数据所包含的所有字节中进行重复字节计算,具体为第一电子设备可以获取原始文件数据中至少一个重复字节,基于所述重复字节对所述原始文件数据进行分割计算处理,通常在计算中可以确定原始文件数据中至少一个重复字节块,所述重复字节块由重复字节重复而构成该数据段,如:数据段:fffffff……,即以重复字节“f”重复构成该数据段。可以理解的是:通过对原始文件数据进行重复字节计算,提取所述原始文件数据中的重复字节数据,并获取所述重复字节数据对应的重复字节信息。

如图3所示,图3是一种重复字节计算的场景示意图,其中,重复字节计算的方式可以是设置一字节数(如图3中的字节数a)用于重复字节比对,采用对原始文件数据从数据起始位置至数据末端位置按照“字节数(如两个字节)”进行循环对比,如,从头至尾依次在原始文件数据提取当前两个字节,将当前的两个字节与“两个字节”之前的上一字节进行对比,假设字节数a,则将当前的两个字节与“两个字节”之前的上一字节进行对比可表示为:当前对比字节为“bytex+a”与比字节为“bytex”进行对比,如下:

若“bytex+a”与“bytex”相同,则重复字节数进行累加,即图3中“count+a”,然后循环对比,令x=x+a,获取当前两个字节的下一字节,也即当前两个字节的下一字节为“bytex+a”,执行所述将当前的两个字节与“当前的两个字节”之前的上一字节进行对比的步骤,也即“当前对比字节为“bytex+a”与比字节为“bytex”进行对比”,直至“当前对比字节为“bytex+a”与比字节为“bytex”进行对比”不相同;

若“bytex+a”与“bytex”不相同即确定一个由至少一个重复字节(如count计数器数量个字节构成的重复字节)构成的重复字节块,然后基于重复字节块对应的重复字节a,可以得到所述重复字节对应的重复字节信息,所述重复字节信息包括填充长度、所述重复字节对应的第一数据长度(即重复字节块的字节大小)以及所述重复字节(重复字节块对应的重复字节)在所有数据帧中的第一顺序(重复字节块对应的帧顺序);

再获取重复字节块后的下一“设置的字节数”(所述下一设置字节数可以与上一轮字节数相同、也可以不同)按照上述方式进行循环对比,如,在原始文件数据提取重复字节块后的当前两个字节(也即当前一轮设置的字节数),将当前的两个字节与“两个字节”之前的上一字节进行对比,相同即获取当前两个字节的下一字节,执行所述将当前的两个字节与“当前的两个字节”之前的上一字节进行对比的步骤,不相同即确定一个由至少一个重复字节(如两个字节构成的重复字节)构成的另一重复字节块,从而可以得到所述另一重复字节块的重复字节所对应的重复字节信息;

基于上述方式,对原始文件数据进行遍历,依次基于设置的字节数进行循环对比可以在原始文件数据中确定至少一个重复字节块,从而完成对原始文件数据所包含的所有字节中进行重复字节计算的过程,同时再确定重复字节块之后,可以随之确定重复字节块对应的重复字节信息,如特征数据“重复字节块”数据信息至少包括重复字节块对应的重复字节、重复字节对应的填充长度(即重复字节的字节大小)、重复字节对应的第一数据长度(即重复字节块的字节大小)、所述重复字节在所有数据帧中的第一顺序。

步骤s202:按照所述重复字节数据对应的第一编码方式对所述重复字节信息进行数据编码,得到所述原始文件数据的至少一个第一类型数据帧。

具体的,第一电子设备基于上述确定的重复字节信息,可以基于每个重复字节信息生成所述原始文件数据对应的至少一个第一类型数据帧。具体为:终端预先设置有重复字节数据对应的第一编码方式,按照第一编码方式对重复字节数据的数据信息进行数据编码,从而得到第一类型数据帧,其中,第一类型数据帧为基于重复字节数据的数据信息对应生成的数据帧。

可以理解的是,第一编码方式会对应一个帧数据的编码结构,以及编码结构中组成元素所需填入的数据元素,如:第一编码方式可以是至少基于数据信息中的填充长度(即重复字节的字节大小)、所述重复字节对应的第一数据长度(即重复字节块的字节大小)、以及所述重复字节在所有数据帧中的第一顺序(即编码该重复字节所对应的帧顺序)生成第一类型帧数据。

在一种具体的实施场景中,第一类型数据帧可由帧头、数据段、帧尾构成。帧头在按照第一编码方式进行编码时可以填入帧头、帧顺序、以及帧类型,如帧头可以填入固定字节“0x55”、帧长度即整个第一类型数据帧数据段的长度,帧类型可以填入第一类型数据帧所对应的固定字节,如“0x02”。所述数据段用于填入帧数据,也即重复字节、重复字节对应的第一数据长度(即重复字节块的字节大小)、填充长度(即重复字节的字节大小)。所述帧尾可以填入一个用于对第一类型帧数据进行校验的校验码,如帧数据crc8值,在一些实施例中,所述帧尾也可以填入一个校验码以及一个固定的帧尾字节,如0xaa。

在一种可行的实施方式中,当所述重复字节信息包含的所述重复字节的总长度大于帧长度阈值时,第一电子设备可以基于所述重复字节信息,生成至少一个第一类型数据帧。

其中,重复字节的总长度可以为图3中一轮count计数器中的数值,即上述重复字节块对应的字节大小,所述帧长度阈值为第一类型帧数据对应的重复字节块对应的最小字节大小,也即图3中的帧长度阈值z。可以理解的是,当重复字节信息包含的所述重复字节的总长度小于或等于帧长度阈值时,此时按照第一编码方式对重复字节数据进行编码的编码效率通常不高,也即数据编码的原始数据编码压缩率较低,存在第一类型数据帧数据长度大于第一数据长度的情况,此时通常可对原始文件数据中该重复字节所对应的重复字节数据进行保留。

进一步的,当所述重复字节信息包含的所述重复字节的总长度大于帧长度阈值时,此时按照第一编码方式对重复字节数据进行编码的编码效率通常较高,也即数据编码的原始数据编码压缩率较高,存在第一类型数据帧数据长度小于第一数据长度的情况,此时可对原始文件数据中该重复字节所对应的重复字节数据按照第一编码方式进行数据编码,从而得到所述原始文件数据的至少一个第一类型数据帧。.

步骤s203:按照预设的分块长度,对所述原始文件数据进行分割,得到至少两个数据块。

具体的,第一电子设备对所述原始文件数据进行差分对比计算,也即对原始文件数据进行差分字节分块比对,即在原始文件数据所包含的所有字节中基于预设的分块长度进行分块,得到至少两个数据块。

如图4所示,图4是一种对原始文件数据进行分块的场景示意图,第一电子设备设置有对原始文件数据进行分块的分块长度,如分块长度可以是4kb、2kb、1kb、512b等,按照分块长度对原始文件数据进行分块,可以得到至少两个数据块,可以理解的是分块之后,原始文件数据即对应于block0、block1....blockn,n为正整数。

步骤s204:从所述至少两个数据块中获取目标数据块,将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理,得到所述目标数据块的差分字节数据。

具体的,第一电子设备再对原始文件数据进行分块之后,从所述至少两个数据块中确定当前待比对的目标数据块,如block1,然后将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理,如,确定当前的目标数据块为block1,则将block1与所述目标数据块之前的所有数据块“block0”进行差分对比处理,又如,确定当前的目标数据块为block4,则将block4与所述目标数据块之前的所有数据块“block0~block4”进行差分对比处理,从而可以得到所述目标数据块的差分对比结果,也即差分字节数据。差分对比目的就是从当前数据块前的已编译的原始数据中找到后续数据(即当前数据块)的差分参考依据。

步骤s205:获取所述差分字节数据对应的差分字节信息,并获取所述目标数据块的下一数据块,将所述下一数据块作为所述目标数据块并执行所述确定将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理的步骤。

所述差分字节信息用于按照差分字节数据的编码类型以相应的编码方式进行帧数据编码。所述差分字节信息至少可以是差分字节数据中特征字节(如可复用的差分字节、可复制的差分重复字节、新增字节等等)、差分字节数据对应的编码后的帧顺序、差分字节数据对应的特征类型、特征字节长度等等。

具体的,第一电子设备得到目标数据块所对应的差分字节数据之后,对差分字节数据进行解析处理,具体为基于差分字节的数据判断数据类型,以确定差分字节数据的数据类型,基于数据类型可以获取到相应的差分字节信息,具体如下:

如,第一数据类型,也称新增数据类型,对差分字节数据进行解析处理时,若差分字节数据无法基于原始文件数据中目标数据块之前的所有数据进行参考还原得到(如进行差分还原或填充还原等),则就可以判定所述差分字节数据类型为第一数据类型;同时基于确定的第一数据类型,来确定所述差分字节数据对应的字节信息,如:第一差分数据(即新郑数据字节)、第一差分数据在在所有数据帧中的第二顺序(即编码时第一差分数据对应的帧顺序)、所述第一差分数据对应的第二数据长度。

如,第二数据类型,也称第一差分数据类型(不可复制类型),对差分字节数据进行解析处理时,若差分字节数据可由基于目标数据块之前的所有数据中“已编译的数据段a”和“当前的差分字节段a”按照设定的差分计算方式还原得到目标数据块对应的原始数据,则就可以判定所述差分字节数据类型为第二数据类型;

也即第二电子设备通过按照设定的差分计算方式在解码时可以从“差分字节数据”前面已经还原的数据(如已编译的数据段a)中找到近似的数据段进行借鉴还原;所述差分字节段a可以理解为第一电子设备对原始文件数据中已编译的数据段a与差分字节数据进行逐个差分对比处理,计算得到的差分字节段a,所述差分字节段为差分字节数据对应的数据信息中的一种元素。进一步的,所述差分计算方式可以是逻辑运算,如异或、同或、或、与、非等等。如,上述数据段a与差分字节数据进行同或运算,可以得到差分字节段a,可以理解的是数据还原时,基于差分字节段a以及数据段a进行异或运算,即可得到原始的差分字节数据。

同时基于确定的第二数据类型,来确定所述差分字节数据对应的字节信息,如:第二差分数据(即上述差分字节段a)、所述第二差分数据在所有数据帧中的第三顺序、所述第二差分数据在所述目标数据块之前的所有数据块中的第一参考数据(数据段a)、所述第一参考数据对应的第一数据地址(也即数据段a的数据地址)以及所述第一参考数据对应的第三数据长度,其中,在数据还原时,基于第三数据长度、第一参考数据对应的参数数据长度以及预设的差分计算方式可以确定参考差分数据的参考差分长度,以方便在数据还原时基于参考差分数据对应的第一数据地址获取到参考差分长度指示的数据。

如,第三数据类型,也称第二差分数据类型(可复制类型),对差分字节数据进行解析处理时,若差分字节数据可由基于原始文件数据中已编译的数据段b(如n字节的数据)直接复制进行数据填充即可,也即当前的差分字节数据可在原始文件数据中已编译的数据中找到可以直接进行复制的目标数据(即数据段b),可以理解的是目标数据(即数据段b)与差分字节数据的数据完全一致,此时可以判定所述差分字节数据类型为第三数据类型;同时基于确定的第三数据类型,来确定所述差分字节数据对应的字节信息,如:第三差分数据(当前数据块的差分字节数据)、所述第三差分数据在所有数据帧中的第四顺序、所述第二参考数据对应的第四数据长度(也即第三差分信息对应的原始数据长度)、所述第三差分数据在所述目标数据块之前的所有数据块中的第二数据地址。

步骤s206:当不存在所述下一数据块时,得到所述原始文件数据中的所有所述差分字节信息。

具体的,当第一电子设备确定所述目标数据块为最后一个数据块时,此时即不存在所述下一数据块,此时第一电子设备可以结束对数据块差分对比处理,从而得到对原始文件数据进行数据块差分对比后的,所述原始文件数据中的所有所述差分字节信息。

步骤s207:按照所述差分字节数据对应的第二编码方式对所述差分字节信息进行数据编码,得到所述原始文件数据的至少一个第二类型数据帧。

具体的,第一电子设备基于上述确定的差分字节信息,可以基于每个差分字节信息生成所述原始文件数据对应的至少一个第二类型数据帧。具体为:终端预先设置有差分字节数据对应的第二编码方式,按照第二编码方式对差分字节数据的差分字节信息进行数据编码,从而得到第二类型数据帧,其中,第二类型数据帧为基于差分字节数据的差分字节信息对应生成的数据帧。

可以理解的是,第二编码方式会对应一个帧数据的编码结构,以及编码结构中组成元素所需填入的数据元素,如:第二编码方式可以是至少基于数据信息中的填充长度(即差分数据的字节大小)、所述差分数据对应的数据长度(即差分字节块的字节大小)、以及所述差分数据在所有数据帧中的帧顺序(即编码该差分字节所对应的帧顺序)生成第二类型帧数据。

在一种具体的实施场景中,第二类型数据帧可由帧头、数据段、帧尾构成。帧头在按照第二编码方式进行编码时可以填入帧头、帧顺序、以及帧类型,如帧头可以填入固定字节“0x55”、帧长度即整个第一类型数据帧数据段的长度,帧类型可以填入第二类型数据帧所对应的固定字节,如“0x02”。所述数据段用于填入帧数据,也即差分数据、差分数据对应的数据长度、填充长度(即差分数据的字节大小)。所述帧尾可以填入一个用于对第一类型帧数据进行校验的校验码,如帧数据crc8值,在一些实施例中,所述帧尾也可以填入一个校验码以及一个固定的帧尾字节,如0xaa。

一种数据帧的帧结构如下:

在一种具体的实施方式中,所述差分字节信息至少包括第一差分信息、第二差分信息以及第三差分信息,第一电子设备按照所述差分字节数据对应的第二编码方式对各类型的差分字节信息进行数据编码,得到所述原始文件数据的至少一个第二类型数据帧,

如,对按照所述差分字节数据对应的第二编码方式对第一差分信息进行数据编码,得到所述原始文件数据的新增数据帧;

如,对按照所述差分字节数据对应的第二编码方式对第二差分信息进行数据编码,得到所述原始文件数据的第一差分数据帧;

如,对按照所述差分字节数据对应的第二编码方式对第三差分信息进行数据编码,得到所述原始文件数据的第三差分数据帧。

其中,具体实施细节如下:

第一电子设备在对相应的差分信息(如第一、第二、第三差分信息)进行编码的过程和对目标数据块进行差分对比处理的过程通常相关联,一种第二类型数据帧的编码方式为,对目标数据块进行差分对比处理得到相应的差分信息(如第一、第二、第三差分信息),可以采用并行的方式第一电子设备对目标数据块的相应的差分信息进行第二类型数据帧编码,编码的同时,获取目标数据块的下一数据块,并行处理。一种第二类型数据帧的编码方式为,对原始文件数据对应的所有目标数据块(也即原始文件数据所包含的所有数据块)进行差分对比处理得到所有的目标数据块相应的差分信息(如第一、第二、第三差分信息),然后在差分对比处理过程完成后,对所有的目标数据块的相应的差分信息进行第二类型数据帧的编码。以下对基于目标数据块的相应的差分信息进行第二类型数据帧的编码过程进行详细的释义,如下:

以目标数据块对应第一差分信息为例,第一电子设备可以获取所述目标数据块的第一差分信息,所述第一差分信息包括第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度,基于所述第一差分信息,生成所述原始文件数据对应的新增数据帧;

其中,所述第二顺序基于当前已编码的数据帧的个数确定,如在编码目标数据块的第一差分信息之前,已编码的数据帧的个数为n个,则第二顺序即为n+1。

在编码时,基于第二类型数据帧的帧结构,基于所述第一差分信息,生成所述原始文件数据对应的新增数据帧,具体可以是,第一电子设备在帧头处可以填入固定字节(如“0x55”),将第二顺序填入帧顺序对应的sn号处中,将整个第二类型数据帧的帧数据段的长度填入帧长度处中,将第一差分信息对应的帧类型填入帧类型处中,然后将第一差分数据、第二数据长度填入帧数据处,随之产生帧校验值以及帧尾标识填入帧尾处,从而生成原始文件数据对应的新增数据帧。

以目标数据块对应第二差分信息为例,第一电子设备可以获取所述目标数据块的第二差分信息,所述第二差分信息包括第二差分数据、所述第二差分数据在所有数据帧中的第三顺序、所述第二差分数据在所述目标数据块之前的所有数据块中的第一参考数据、所述第一参考数据对应的第一数据地址以及所述第一参考数据对应的第三数据长度,基于所述第三顺序、所述第一数据地址、所述第三数据长度以及所述第二差分数据,生成所述原始文件数据的第一差分数据帧,所述第二差分数据基于所述第一参考数据与所述第二差分信息对应的原始差分数据经逻辑运算后确定;

其中,所述第二顺序基于当前已编码的数据帧的个数确定,如在编码目标数据块的第一差分信息之前,已编码的数据帧的个数为n个,则第二顺序即为n+1。

在编码时,基于第二类型数据帧的帧结构,基于所述第三顺序、所述第一数据地址、所述第三数据长度以及所述第二差分数据,生成所述原始文件数据对应的第一差分数据帧,具体可以是,第一电子设备在帧头处可以填入固定字节(如“0x55”),将第三顺序填入帧顺序对应的sn号处中,将整个第二类型数据帧的帧数据段的长度填入帧长度处中,将第二差分信息对应的帧类型填入帧类型处中,然后将第一数据地址、第一参考数据对应的第三数据长度以及第二差分数据填入帧数据处,随之产生帧校验值以及帧尾标识填入帧尾处,从而生成原始文件数据对应的第一差分数据帧。

其中,在解码时,解码端可以通过第一数据地址在基于第一差分数据帧之前的所有原始文件数据中确定第一参考数据的起始位置,从起始位置处获取第三数据长度的数据,该数据即第一参考数据,然后解码端可以基于第一参考数据以及第二差分数据进行逻辑运算,所述逻辑运算为编码时“设定的差分计算方式”的逆运算,如,编码时,第一参考数据与目标数据块的原始数据进行同或运算,可以得到第二差分数据,解码时,第一参考数据与第二差分数据进行异或运算,可以得到目标数据块的原始数据。

以目标数据块对应第三差分信息为例,第一电子设备可以获取所述目标数据块的第三差分信息,所述第三差分信息包括第三差分数据、所述第三差分数据在所有数据帧中的第四顺序、所述第二参考数据对应的第四数据长度、所述第三差分数据在所述目标数据块之前的所有数据块中的第二数据地址,基于所述第四帧顺序、所述第四数据长度以及所述第二数据地址,生成所述原始文件数据的第二差分数据帧。

在编码时,基于第二类型数据帧的帧结构,基于第四帧顺序、所述第四数据长度以及所述第二数据地址,生成所述原始文件数据对应的第二差分数据帧,具体可以是,第一电子设备在帧头处可以填入固定字节(如“0x55”),将第四顺序填入帧顺序对应的sn号处中,将整个第二类型数据帧的帧数据段的长度填入帧长度处中,将第二差分信息对应的帧类型填入帧类型处中,然后将第二数据地址、第二参考数据对应的第四数据长度填入帧数据处,随之产生帧校验值以及帧尾标识填入帧尾处,从而生成原始文件数据对应的第二差分数据帧。

其中,在解码时,解码端可以通过第二数据地址在基于第二差分数据帧之前的所有原始文件数据中确定第二参考数据的起始位置,从起始位置处获取第四数据长度的数据,该数据即第二参考数据,根据一些实施例中对于第三差分信息的释义,第二参考数据即为目标数据块的原始数据。

在一种可行的实施方式中,第一电子设备设置有多个预设的分块长度,通过基于多个预设的分块长度中的各分块长度依次执行步骤203~步骤207,从而得到各分块长度分别对应的“所述原始文件数据的至少一个第二类型数据帧”,第一电子设备可以确定编码效率最高的编码方式,也即确定最合适的分块长度以及将所述最合适的分块长度对应的“所述原始文件数据的至少一个第二类型数据帧”作为优选。具体如下:

1、第一电子设备基于多个预设的分块长度,确定各所述预设的分块长度对应的所述至少一个第二类型数据帧的编码效率;

具体实施中,第一电子设备通过基于多个预设的分块长度中的各分块长度依次执行步骤203~步骤207,从而得到各分块长度分别对应的“所述原始文件数据的至少一个第二类型数据帧”然后计算各分块长度下,得到的“所述至少一个第二类型数据帧的编码效率”,计算方式可以是:计算基于分块长度编码前的原始数据的内存大小与“所述至少一个第二类型数据帧”的总内存的比值,将所述比值作为编码效率。基于所述方法,可以得到各所述预设的分块长度对应的所述至少一个第二类型数据帧的编码效率。

确定各所述帧编码效率中的最高编码效率,确定所述最高帧编码效率指示的至少一个目标第二类型数据帧;

具体实施中,基于上述可以得到各所述预设的分块长度对应的所述至少一个第二类型数据帧的编码效率,然后第一电子设备从各所述帧编码效率中确定最高编码效率,然后确定最高编码效率指示的目标分块长度,将基于目标分块长度下最终确定对应的至少一个目标第二类型数据帧作为;

将所述至少一个目标第二类型数据帧作为所述原始文件数据的至少一个第二类型数据帧。

需要说明的是,第一电子设备执行所述对原始文件数据进行重复字节计算,提取所述原始文件数据中的重复字节数据,并获取所述重复字节数据对应的重复字节信息的步骤(也即执行步骤s201~步骤s202),以及执行所述对所述原始文件数据进行差分对比计算,提取所述原始文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息的步骤(也即执行步骤s203~步骤s207)不分先后,可以是第一电子设备执行“步骤s201~步骤s202”与“步骤s203~步骤s207”并行执行,也可以是第一电子设备执行“步骤s201~步骤s202”与“步骤s203~步骤s207”串行执行。

进一步的,当第一电子设备执行“步骤s201~步骤s202”与“步骤s203~步骤s207”串行执行时,第一电子设备可以先执行步骤s201~步骤s202。

优选的,在执行完步骤s201~步骤s202之后,此时通常完成得到所述原始文件数据的至少一个第一类型数据帧。为了进一步提高对原始文件数据帧的编码效率或编码压缩率,第一电子设备可以对已经编码的重复字节数据进行滤除,

也即第一电子设备在所述原始文件数据中对所述重复字节数据进行滤除处理,然后得到滤除处理后的目标文件数据,第一电子设备可以将目标文件数据作为所述原始文件数据,执行对所述目标文件数据进行差分对比计算,提取所述目标文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息的步骤,也即第一电子设备将目标文件数据作为所述原始文件数据,执行步骤s203~步骤s207。

步骤s208:获取所述原始文件数据对应的目标压缩算法,基于所述目标压缩算法对所述各类数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

所述目标压缩算法为在基于原始文件数据的数据特征进行数据挖掘,并重新编码完成各类型数据帧后,对各类型数据帧进行压缩时的算法。通过对各类数据帧进行压缩处理,所述数据压缩处理可以理解为不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,实际应用中,可以采用相关压缩算法对已编码完成后的各类数据帧进行压缩,从而减少数据的冗余和存储的空间。常见的压缩算法包括有损压缩和无损压缩,所述压缩算法可以是霍夫曼(huffman)算法、lzw(lenpel-ziv&welch)压缩算法、lzr(lz-renau)压缩方法,等等。

在一种可行的实施方式中,第一电子设备可以基于设置的多个压缩算法分别对所述各类数据帧进行压缩处理,然后生成所述多个压缩算法分别对应的压缩数据包;

然后下一步第一电子设备从各压缩数据包中确定最优压缩数据包,第一电子设备基于各所述压缩数据包确定所述多个压缩算法分别对应的压缩率,其中,压缩率的计算方式可以是原始文件数据的数据内存与压缩数据包的包内存的比值,或,压缩率的计算方式可以是各类数据帧的总内存与压缩数据包的包内存的比值,等等。

第一电子设备在从各所述压缩率中确定最高压缩率,将所述最高压缩率指示的所述压缩算法作为目标压缩算法,以最优的目标压缩算法对应的压缩处理后的数据压缩包作为所述原始文件数据对应的数据压缩包。

在一种可行的实施方式中,第一电子设备可以获取所述原始文件数据对应的预设压缩算法,也即第一电子设备设置有默认压缩的预设压缩算法,所述预设压缩算法可以是第一电子设备上的用户手动设置,可以是通过获取实际环境中的样本数据(如各压缩算法对应的压缩率)采用大数据的方式综合确定的一个最优的压缩算法,然后将最优的压缩算法作为预设压缩算法。

步骤s209:获取数据帧解码文件以及所述目标压缩算法的解压缩文件,基于所述数据压缩包、所述解压缩文件以及所述数据帧解码文件,生成数据封装包。

具体的,第一电子设备获取对原始文件数据进行数据帧解码上对应的帧解码文件,其中所述帧解码文件包含了各类数据帧解码为原始文件数据的解码规则,所述帧解码文件通常以帧解码协议形式存在,以及获取目标压缩算法的解压缩文件,其中解压缩文件可以是目标压缩算法对应的解码算法,或解码规则,等。然后第一电子设备对数据压缩包、所述解压缩文件以及所述数据帧解码文件进行封装处理,得到数据封装包。

在本申请实施例中,第一电子设备获取原始文件数据包含的至少一类特征数据,获取各类所述特征数据的数据信息,基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧,将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。通过获取对原始文件数据进行细分挖掘后的至少一类特征数据(也即数据编译特征),然后对各类特征数据进行数据编码,可以避免直接基于固定的压缩算法进行数据压缩时压缩率不高的问题,提高了数据压缩的压缩率,节省了数据的开销(如内存开销、数据传输开销等);以及,根据不同类型的各类特征数据的数据信息(如重复字节信息、差分信息)采用相对应的编码方式,最大化利用原始文件数据的特征数据,大幅提高对原始文件数据编码时已编码数据(也即已编码字节或数据段)的复用率;以及,可以先对原始文件数据中的重复字节数据进行编码并编码后对重复字节数据进行滤除,再基于滤除后的目标文件数据进行差分数据的编码,可以进一步提高对原始文件数据帧的编码效率或编码压缩率;以及,可以获取各种不同的压缩算法对各类数据帧编码时的最优压缩算法,进而获取最优压缩算法对各类数据帧编码后的数据压缩包,进一步提高压缩率。

在一个实施例中,如图5所示,特提出了一种数据解压方法,该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的数据解压装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行,以下为了释义的方便,以数据解压装置为第二电子设备进行详细释义。

具体的,该数据解压方法包括:

步骤s301:获取数据压缩包。

具体的,第二电子设备可以预先建立与第一电子设备的通信连接,基于所述通讯连接,第二电子设备可以向第一电子设备针对数据压缩包发送获取请求,第一电子设备响应与所述获取请求向第二电子设备发送数据压缩包;或,第一电子设备在所述通信连接建立后,可以基于所述通信连接主动向第二电子设备发送数据压缩包,此时,第二电子设备既可以获取到第一电子设备推送的数据压缩包。

其中,所建立的通信连接可以为通信长连接或通信短连接。

长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。

长连接的操作步骤是:建立连接——数据传输...(保持连接)...数据传输——关闭连接。

短连接是指通讯双方有数据交互时,就建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。

短连接的操作步骤是:建立连接——数据传输——关闭连接...建立连接——数据传输——关闭连接。

长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况。每个tcp连接都需要三步握手,这需要时间,如果每个操作都是短连接,再操作的话那么处理速度会降低很多,所以每个操作完后都不断开,下次处理时直接发送数据包就可以,不用建立tcp连接。例如:数据库的连接可以用长连接,如果用短连接频繁的通信会造成socket错误,而且频繁的socket创建也是对资源的浪费。

而像web网站的http服务一般都用短链接,因为长连接对于服务端(如第一电子设备)来说会耗费一定的资源,而像web网站这么频繁的成千上万甚至上亿客户端的连接用短连接会更省一些资源,如果用长连接,而且同时有成千上万的用户,如果每个用户都占用一个连接的话,那可想而知吧。所以并发量大,但每个用户无需频繁操作情况下需用短连接好。

需要说明的是,所述第一电子设备与第二电子设备之间建立的通信连接可以是通信长连接,也可以是通信短连接,此处不作具体限定。

步骤s302:对所述数据压缩包进行解压缩,得到至少一类数据帧。

具体的,第二电子设备在获取到数据压缩包之后,然后对数据压缩包进行解压缩处理,从而可以得到数据压缩包解压缩后的至少一类数据帧,其中,解压缩是可以采用默认的解压缩算法对数据压缩包进行解压,或,采用与数据压缩包压缩时的压缩算法相对应的解压缩算法对数据压缩包进行解压。

其中,所述解压缩算法包括但不限于霍夫曼(huffman)解压缩算法、lzw(lenpel-ziv&welch)解压缩算法、lzr(lz-renau)解压缩方法,等等。

根据一些实施例中,第二电子设备对所述数据压缩包进行解压缩后,可以得到至少一个第一类型数据帧以及至少一个第二类型数据帧。

其中,所述第一类型数据帧为第一电子设备对原始文件数据中重复字节数据所包含的数据信息进行数据编码,从而得到的第一类型数据帧。

所述第二类型数据帧为第一电子设备对原始文件数据中差分字节数据所包含的数据信息进行数据编码,从而得到的第二类型数据帧。

对第一类型数据帧以及第二类型数据帧进行编码的过程以及相关联的概念可参考上述实施例,此处不再详细赘述。

步骤s303:基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。

所述至少一类数据帧可以为第一类型数据帧,也可以为第二类型数据帧,在本申请实施例中,基于各类型数据帧的解码方式,对对数据帧进行数据解码,从而可以得到该类型数据帧所对应的原始数据,可以理解的是,第二电子设备当对数据压缩包所包含的所有类型的数据帧均解码完毕后,即可得到数据压缩包对应的原始文件数据。

根据一些实施例中,第一类型数据帧以第一编码方式进行编码,则对应解码过程为编码的逆过程,则第二电子设备可以基于第一编码方式所对应的解码方式对第一类型数据帧进行解码。如基于第一类型数据帧中的重复字节信息进行解码还原,所述重复字节信息包括所述重复字节、填充长度、所述重复字节对应的第一数据长度以及所述重复字节在所有数据帧中的第一顺序。

根据一些实施例中,第二类型数据帧以第二编码方式进行编码,则对应解码过程为编码的逆过程,则第二电子设备可以基于第二编码方式所对应的解码方式对第二类型数据帧进行解码。如根据第二类型数据帧中不同的数据帧采用对应的解码方式进行解码。

其中,第二电子设备对所述至少一类数据帧(如第一类型数据帧、第二类型数据帧)进行数据解码的详细释义,可参考下述释义。

在本申请实施例中,第二电子设备获取数据压缩包,对所述数据压缩包进行解压缩,得到至少一类数据帧,并基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。通过获取基于原始文件数据的至少一类特征数据重新编码后的且高压缩率的数据压缩包,只需对数据的开销(如内存开销、数据传输开销等)小的数据压缩包中的至少一类数据帧进行相应数据解码,就可以还原出数据压缩包对应的原始文件数据,在整个原始文件数据获取过程中,降低了数据的开销(如内存开销、数据传输开销等),缩短了获取原始文件数据的时间,提高了数据获取的效率,同时节省了设备资源。

请参见图6,图6是本申请提出的一种数据压缩方法的另一种实施例的流程示意图。具体的:

步骤s401:获取数据封装包,对所述数据封装包进行解封装得到数据压缩包、以及所述数据压缩包对应的解压缩文件和数据帧解码文件。

所述解压缩文件可以是对数据压缩包采用相应的压缩算法进行压缩过程中压缩算法对应的解码算法、解码规则、解码文件,等。其中,在一些实施例中,解压缩文件可以是集成有对数据压缩包解压缩功能的解压缩软件驱动,第二电子设备可以通过下载安装解压缩文件,来初始化解压缩软件驱动,以方便实际应用中第二电子设备可以基于解压缩软件驱动快速对数据压缩包进行解压缩,从而得到解压缩处理后的至少一类数据帧。

所述数据帧解码文件包含了各类数据帧解码为原始文件数据的解码规则,所述帧解码文件通常以帧解码协议形式存在,如第一类型数据帧的解码规则,第二类型数据帧的解码规则,等等。其中,在一些实施例中,数据帧解码文件可以是集成有对各类数据帧解码功能的解差分驱动,第二电子设备可以通过下载安装数据帧解码文件,来初始化解差分驱动,以方便实际应用中第二电子设备可以基于解差分驱动快速对了各类数据帧进行解码,从而得到解码处理后的至少一类数据帧对应的原始数据。

步骤s402:对所述数据压缩包进行解压缩,得到至少一类数据帧。

具体的,第二电子设备可以基于解压缩文件对数据压缩包进行解压缩处理,然后可以得到数据压缩包对应的至少一类数据帧,如第一类型数据帧、第二类型数据帧。在实际应用中,第二电子设备通过相应的下载服务(如uds服务)缓存解压缩文件至下相应的存储空间中,然后对解压缩文件进行安装,来初始化解压缩文件对应的解压缩软件驱动,第二电子设备调用解压缩软件驱动对所述数据压缩包进行解压缩,然后得到数据压缩包对应的至少一类数据帧,如第一类型数据帧、第二类型数据帧。

在一种具体的实施场景中,第二电子设备获取到至少一类数据帧,通常所述至少一类数据帧会对应有各数据帧,然后电子设备可以对各类型数据帧(如第一类型数据帧、第二类型数据帧)进行帧数据合法性检查。

具体的,第二电子设备获取所述至少一类数据帧中各类型数据帧的帧顺序以及帧校验值,基于所述帧顺序以及所述帧校验值,进行数据校验,一方面基于各帧数据的帧顺序,检测下载的所有帧数据是否存在遗漏的数据帧未下载,即检测所有帧数据的帧完整性;一方面,获取帧校验值进行所述帧校验值对应的该帧数据的合法性检测,如对帧数据的校验可以是基于设置的校验算法实现的,如奇偶校验算法、bcc异或校验法(blockcheckcharacter)、crc循环冗余校验(cyclicredundancycheck)、md校验算法,等等,第二电子设备可以根据校验算法对该帧数据进行检验数据计算,得到校验计算,将校验计算结果与帧数据中携带的帧校验值(如crc码)进行对比,若一致,则帧数据是完整的,若不一致,则帧数据出错。。

具体的,第二电子设备在对所有类型的帧数据的合法性校验通过后,通常可以基于所述数据帧解码文件执行下一步对所有类型的帧数据进行数据解码,具体可以是对至少一个第一类型数据帧以及至少一个第二类型数据帧进行解差分处理,通过解差分处理,可以得到解差分处理后所有类型的帧数据共同对应的原始文件数据。

步骤s403:基于所述数据帧解码文件,获取至少一个所述第一类型数据帧以及至少一个所述第二类型数据帧中的目标数据帧。

其中,对所有类型数据帧的解码过程通常是采用串行的方式,即根据各数据帧的帧顺序依次对各数据帧进行解码。所述目标数据帧为第二电子设备每一轮对数据帧解码的过程中,当前一轮待解码的数据帧。

在实际应用中,第二电子设备可以先基于所述数据帧解码文件确定对各数据帧的解码方式或解码规则,然后基于“至少一个所述第一类型数据帧以及至少一个所述第二类型数据帧”的帧顺序,确定当前一轮待解码的目标数据帧,如第二电子设备已对第n帧顺序进行解码完成,则获取帧顺序为第n+1帧的目标数据帧,然后进行下一步采用目标数据帧的相对应的解码方式进行数据帧解码。

步骤s404:对所述目标数据帧进行解差分处理,得到所述目标数据帧对应的原始数据帧。

具体的,第二电子设备按照目标数据帧的类型,具体实施中第二电子设备可以从目标数据帧的“帧头所包含的帧类型处”获取表征目标数据帧类型的固定字节,如“0x02”表征第一类型数据帧。然后进行相应解差分处理,如对第一类型数据帧进行第一解差分处理,对第二类型数据帧进行第二解差分处理,从而得到所述目标数据帧对应的原始数据帧。具体如下:

1、当所述目标数据帧为所述第一类型数据帧时,第二电子设备可以基于所述数据帧解码文件,按照数据帧解码文件对应的解码方式对所述第一类型数据帧进行第一解差分处理,从而得到原始填充数据,其中所述第一类型数据经第一解差分处理得到的原始数据为原始填充数据。

具体的,对第一类型数据帧的解码过程也即对第一类型数据编码的逆过程,第二电子设备可以基于第一类型数据帧中的相关字节数据(如重复字节信息),然后对相关字节数据进行帧数据还原,即可得到所述目标数据帧对应的原始填充数据。

进一步的,第二电子设备可以获取所述目标数据帧对应的重复字节信息,所述重复字节信息包括所述重复字节、填充长度、所述重复字节对应的第一数据长度以及所述重复字节在所有数据帧中的第一顺序;

如,根据一些实施例提及的对第一类型数据帧的编码过程以及第一类型数据帧的帧结构,第二电子设备可以在“数据段”中获取重复字节、填充长度、所述重复字节对应的第一数据长度。

然后,基于所述重复字节信息进行第一解差分处理,得到所述目标数据帧对应的原始填充数据,具体为:第二电子设备基于第一数据长度(即编码时原始重复字节块的字节大小)、填充长度(即重复字节的字节大小)可以对第一类型数据帧对应的原始数据进行还原(也即对编码第一类型数据帧时该帧对应的目标数据块的进行数据还原),如:重复字节为“f”,填充长度(即重复字节的字节大小)为“1”,第一数据长度(即编码时原始重复字节块的字节大小)为“10”,则第二电子设备只需将重复字节重复至第一数据长度指示的长度即可,也即将“f”连续复制10个,得到“fffffff…”,“fffffff…”即为编码第一类型数据帧时该帧对应的原始填充数据,同时将这段数据“fffffff…”填充至已经对该第一类型数据帧之前所有数据帧对应还原的数据之后即可,从而完成对该目标数据帧为第一类型数据帧的帧数据还原。

具体的,第二电子设备按照目标数据帧的类型,具体实施中第二电子设备可以从目标数据帧的“帧头所包含的帧类型处”获取表征目标数据帧类型的固定字节,如“0x00”、“0x01”“0x81”表征第二类型数据帧。然后进行相应解差分处理,如对第一类型数据帧进行第一解差分处理,对第二类型数据帧进行第二解差分处理,从而得到所述目标数据帧对应的原始数据帧。具体如下:

当所述目标数据帧为所述第二类型数据帧时,对所述目标数据帧进行第二解差分处理,得到原始差分数据。

根据一些实施例中,所述第二类型数据帧至少包括新增数据帧、第一差分数据帧以及第二差分数据帧,如“0x00”表示新增数据帧、“0x01”表示第一差分数据帧、“0x81”表示第二差分数据帧。进一步的:

2、当所述第二类型数据帧为新增数据帧时,第二电子设备可以基于所述数据帧解码文件,按照数据帧解码文件对应的解码方式获取所述新增数据帧的第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度,基于所述第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度进行第二解差分处理,得到原始新增数据。

具体的,对新增数据帧的解码过程也即对新增数据帧编码的逆过程,第二电子设备可以基于新增数据帧中的相关字节数据(如第一差分数据),然后对相关字节数据进行帧数据还原,即可得到所述目标数据帧对应的原始新增数据。

进一步的,第二电子设备可以获取所述新增数据帧的第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度。

如,根据一些实施例提及的对第二类型数据帧中新增数据帧的编码过程以及第二类型数据帧的帧结构,第二电子设备可以在“数据段”中获取新增数据帧的第一差分数据、所述第一差分数据对应的第二数据长度。

然后基于所述第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度进行第二解差分处理,具体为:将第二数据长度对应的第一差分数据填充至“该新增数据帧之前所有数据帧”的已还原原始数据之后即可,从而完成对该新增数据帧为第二类型数据帧的帧数据还原。

3、当所述第二类型数据帧为第一差分数据帧时,第二电子设备可以基于所述数据帧解码文件,按照数据帧解码文件对应的解码方式获取所述第一差分数据帧的第三数据长度、第二差分数据、第一数据地址;基于所述第三数据长度以及所述第一数据地址,获取所述第一数据地址处指示的第一参考数据;对所述第一参考数据以及所述第二差分数据进行第二解差分处理,得到第一原始差分数据。

具体的,对第一差分数据帧的解码过程也即对第一差分数据帧编码的逆过程,第二电子设备可以基于第一差分数据帧中的相关字节数据(如第二差分数据),然后对相关字节数据进行帧数据还原,即可得到所述第一差分数据帧对应的第一原始差分数据。

进一步的,第二电子设备可以获取所述第三数据长度、第二差分数据、第一数据地址。

如,根据一些实施例提及的对第二类型数据帧中第一差分数据帧的编码过程以及第二类型数据帧的帧结构,第二电子设备可以在“数据段”中获取所述第三数据长度、第二差分数据、第一数据地址。

根据一些实施例中,第二电子设备通过按照数据帧解码文件设定的差分计算方式在解码时,可以从第一差分数据帧前面已经还原的帧数据中找到参考数据段(也即第一参考数据)进行借鉴还原;具体为,第二电子设备在“第一差分数据帧前面已经还原的帧数据中”基于第一数据地址确定“第一参考数据”的起始地址,从起始地址起获取第三数据长度指示的第一参考数据,如第三数据长度为128位,则第二电子设备从第一数据地址起往后复制128位的第一参考数据,另外,数据帧解码文件对应有第一差分数据帧的差分计算方式,所述差分计算方式可以是逻辑运算,如异或、同或、或、与、非等等。如,编码时,第一电子设备基于第一原始差分数据与第一参考数据进行逻辑编码运算(如同或运算),得到第二差分数据,解码时,第二电子设备采用逻辑编码运算的逆运算,也即数据帧解码文件对应有第一差分数据帧的差分计算方式(也可理解为逻辑解码运算),对第二差分数据以及第一参考数据进行逻辑解码运算,即可得到第一差分数据帧对应的第一原始差分数据,如,逻辑编码运算为同或运算,则逻辑解码运算则为异或运算。上述解码的过程也即所述第二节差分处理的过程。然后第二电子设备将第一原始差分数据填充至“该第一差分数据帧之前所有数据帧”的已还原原始数据之后即可,从而完成对该第一差分数据帧为第二类型数据帧的帧数据还原。

4、当所述第一类型数据帧为第二差分数据帧时,第二电子设备获取所述第二差分数据帧的第四数据长度以及第二数据地址,获取所述第二数据地址处指示的第二参考数据中第二参考数据,对所述第二参考数据以及所述第四数据长度进行第二解差分处理,得到第二原始差分数据。

具体的,对第二差分数据帧的解码过程也即对第二差分数据帧编码的逆过程,第二电子设备可以基于第二差分数据帧中的相关字节数据(如第二数据地址),然后对相关字节数据进行帧数据还原,即可得到所述第二差分数据帧对应的第二原始差分数据。

进一步的,第二电子设备可以获取所述第二差分数据帧的第四数据长度以及第二数据地址。

如,根据一些实施例提及的对第二类型数据帧中第二差分数据帧的编码过程以及第二类型数据帧的帧结构,第二电子设备可以在“数据段”中获取所述第四数据长度以及第二数据地址。

根据一些实施例中,第二电子设备通过按照数据帧解码文件设定的差分计算方式在解码时,可以从第二差分数据帧前面已经还原的帧数据中找到参考数据段(也即第二参考数据)进行直接复制还原;具体为,第二电子设备在“第二差分数据帧前面已经还原的帧数据中”基于第二数据地址确定“第二参考数据”的起始地址,从起始地址起获取第四数据长度指示的第二参考数据,如第四数据长度为130位,则第二电子设备从第二数据地址起往后复制130位,从而得到第二参考数据。根据一些实施例中对于第二差分数据帧编码过程的释义,第二参考数据即为第二差分数据帧对应的第二原始差分数据。然后第二电子设备将第二原始差分数据填充至“该第二差分数据帧之前所有数据帧”的已还原原始数据之后即可,从而完成对该第二差分数据帧为第二类型数据帧的帧数据还原。

步骤s405:获取所述目标数据帧对应的下一数据帧,将所述下一数据帧作为所述目标数据帧,执行所述对所述目标数据帧进行解差分处理的步骤。

具体的,第二电子设备可以基于目标数据帧的帧顺序,来确定所述帧顺序的下一顺序指示的下一数据帧,如目标数据帧的帧顺序为n,则确定帧顺序为n+1指示的下一数据帧。从而将下一数据帧作为目标数据帧,执行所述对所述目标数据帧进行解差分处理的步骤。

步骤s406:当不存在所述下一数据帧时,基于所有所述原始数据帧,生成原始文件数据。

具体的,当第二电子设备确定所述目标数据帧为最后一个数据帧时,此时即不存在所述下一数据帧,此时第二电子设备可以完成对所有各类型数据帧的数据还原,从而得到对所有各类型数据帧进行数据还原后的原始文件数据。

在本申请实施例中,第二电子设备获取数据压缩包,对所述数据压缩包进行解压缩,得到至少一类数据帧,并基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。通过获取基于原始文件数据的至少一类特征数据重新编码后的且高压缩率的数据压缩包,只需对数据的开销(如内存开销、数据传输开销等)小的数据压缩包中的至少一类数据帧进行相应数据解码,就可以还原出数据压缩包对应的原始文件数据,在整个原始文件数据获取过程中,降低了数据的开销(如内存开销、数据传输开销等),缩短了获取原始文件数据的时间,提高了数据获取的效率,同时节省了设备资源;以及,根据不同类型的数据帧采用相对应的解码方式,最大化利用已还原数据(也即已解码字节或数据段)的复用率,大幅缩短对原始文件数据解码时间。

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

请参见图7,其示出了本申请一个示例性实施例提供的数据压缩装置的结构示意图。该数据压缩装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置1包括数据信息获取模块11、数据信息编码模块12和数据压缩包生成模块13。

数据信息获取模块11,用于获取原始文件数据包含的至少一类特征数据,获取所述至少一类特征数据中各类所述特征数据的数据信息;

数据信息编码模块12,用于基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧;

数据压缩包生成模块13,用于将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

可选的,如图8所示,所述数据信息获取模块11,包括:

重复字节信息获取单元111,用于对原始文件数据进行重复字节计算,提取所述原始文件数据中的重复字节数据,并获取所述重复字节数据对应的重复字节信息;

差分字节信息获取单元112,用于对所述原始文件数据进行差分对比计算,提取所述原始文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息。

可选的,如图9所示,所述数据信息编码模块12,包括:

第一类型数据帧编码单元121,用于按照所述重复字节数据对应的第一编码方式对所述重复字节信息进行数据编码,得到所述原始文件数据的至少一个第一类型数据帧;

第二类型数据帧编码单元122,用于按照所述差分字节数据对应的第二编码方式对所述差分字节信息进行数据编码,得到所述原始文件数据的至少一个第二类型数据帧。

可选的,所述重复字节信息获取单元111,具体用于:

获取原始文件数据中至少一个重复字节,基于所述重复字节对所述原始文件数据进行分割计算处理,得到所述重复字节对应的重复字节信息,所述重复字节信息包括所述重复字节、填充长度、所述重复字节对应的第一数据长度以及所述重复字节在所有数据帧中的第一顺序;

所述第一类型数据帧编码单元121,具体用于:

基于所述重复字节信息,生成所述原始文件数据对应的至少一个第一类型数据帧。

可选的,如图10所示,所述差分字节信息获取单元112,具体用于:

数据块分割子单元1121,用于按照预设的分块长度,对所述原始文件数据进行分割,得到至少两个数据块;

差分对比子单元1122,用于从所述至少两个数据块中获取目标数据块,将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理,得到所述目标数据块的差分字节数据;

所述差分对比子单元1122,还用于获取所述差分字节数据对应的差分字节信息,并获取所述目标数据块的下一数据块,将所述下一数据块作为所述目标数据块并执行所述确定将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理的步骤;

差分字节信息生成单元1123,用于当不存在所述下一数据块时,得到所述原始文件数据中的所有所述差分字节信息。

可选的,所述差分字节信息至少包括第一差分信息、第二差分信息以及第三差分信息,所述第二类型数据帧编码单元122,具体用于:

获取所述目标数据块的第一差分信息,所述第一差分信息包括第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度,基于所述第一差分信息,生成所述原始文件数据对应的新增数据帧;和/或,

获取所述目标数据块的第二差分信息,所述第二差分信息包括第二差分数据、所述第二差分数据在所有数据帧中的第三顺序、所述第二差分数据在所述目标数据块之前的所有数据块中的第一参考数据、所述第一参考数据对应的第一数据地址以及所述第一参考数据对应的第三数据长度,基于所述第三顺序、所述第一数据地址、所述第三数据长度以及所述第二差分数据,生成所述原始文件数据的第一差分数据帧,所述第二差分数据基于所述第一参考数据与所述第二差分信息对应的原始差分数据经逻辑运算后确定;和/或,

获取所述目标数据块的第三差分信息,所述第三差分信息包括第三差分数据、所述第三差分数据在所有数据帧中的第四顺序、所述第二参考数据对应的第四数据长度、所述第三差分数据在所述目标数据块之前的所有数据块中的第二数据地址,基于所述第四帧顺序、所述第四数据长度以及所述第二数据地址,生成所述原始文件数据的第二差分数据帧。

可选的,所述预设的分块长度为多个,所述装置1,具体用于:

基于多个预设的分块长度,确定各所述预设的分块长度对应的所述至少一个第二类型数据帧的编码效率;

确定各所述帧编码效率中的最高编码效率,确定所述最高帧编码效率指示的至少一个目标第二类型数据帧;

所述第二类型数据帧编码单元122,具体用于:

将所述至少一个目标第二类型数据帧作为所述原始文件数据的至少一个第二类型数据帧。

可选的,如图8所示,所述数据信息获取模块11,还包括:

重复数据滤除单元113,用于在所述原始文件数据中对所述重复字节数据进行滤除处理,得到滤除处理后的目标文件数据;

所述差分字节信息获取单元112,还用于对所述目标文件数据进行差分对比计算,提取所述目标文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息。

可选的,所述数据压缩包生成模块13,具体用于:

获取所述原始文件数据对应的目标压缩算法,基于所述目标压缩算法对所述各类数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

可选的,所述数据压缩包生成模块13,具体用于:

基于多个压缩算法分别对所述各类数据帧进行压缩处理,生成所述多个压缩算法分别对应的压缩数据包;

基于各所述压缩数据包确定所述多个压缩算法分别对应的压缩率,在各所述压缩率中确定最高压缩率,将所述最高压缩率指示的所述压缩算法作为目标压缩算法;或,

获取所述原始文件数据对应的预设压缩算法。

可选的,如图11所示,所述装置1,还包括:

数据封装包生成模块14,用于获取数据帧解码文件以及所述目标压缩算法的解压缩文件,基于所述数据压缩包、所述解压缩文件以及所述数据帧解码文件,生成数据封装包。

需要说明的是,上述实施例提供的数据压缩装置在执行数据压缩方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据压缩装置与数据压缩方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请实施例中,在本申请实施例中,第一电子设备获取原始文件数据包含的至少一类特征数据,获取各类所述特征数据的数据信息,基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧,将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。通过获取对原始文件数据进行细分挖掘后的至少一类特征数据(也即数据编译特征),然后对各类特征数据进行数据编码,可以避免直接基于固定的压缩算法进行数据压缩时压缩率不高的问题,提高了数据压缩的压缩率,节省了数据的开销(如内存开销、数据传输开销等);以及,根据不同类型的各类特征数据的数据信息(如重复字节信息、差分信息)采用相对应的编码方式,最大化利用原始文件数据的特征数据,大幅提高对原始文件数据编码时已编码数据(也即已编码字节或数据段)的复用率;以及,可以先对原始文件数据中的重复字节数据进行编码并编码后对重复字节数据进行滤除,再基于滤除后的目标文件数据进行差分数据的编码,可以进一步提高对原始文件数据帧的编码效率或编码压缩率;以及,可以获取各种不同的压缩算法对各类数据帧编码时的最优压缩算法,进而获取最优压缩算法对各类数据帧编码后的数据压缩包,进一步提高压缩率。

请参见图12,其示出了本申请一个示例性实施例提供的数据解压装置的结构示意图。该数据解压装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该装置2包括压缩包获取模块21、压缩包解压模块22以及数据帧解码模块23。

压缩包获取模块21,用于获取数据压缩包;

压缩包解压模块22,用于对所述数据压缩包进行解压缩,得到至少一类数据帧;

数据帧解码模块23,用于基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。

可选的,所述压缩包获取模块21,具体用于:

获取数据封装包,对所述数据封装包进行解封装得到数据压缩包、以及所述数据压缩包对应的解压缩文件和数据帧解码文件。

可选的,所述数据帧解码模块23,具体用于:

基于所述数据帧解码文件对至少一个第一类型数据帧以及至少一个第二类型数据帧进行解差分处理,得到解差分处理后的原始文件数据。

可选的,如图13所示,所述数据帧解码模块23,包括:

数据帧获取单元231,用于基于所述数据帧解码文件,获取至少一个所述第一类型数据帧以及至少一个所述第二类型数据帧中的目标数据帧;

数据帧解差分单元232,用于对所述目标数据帧进行解差分处理,得到所述目标数据帧对应的原始数据帧;

所述数据帧获取单元231,还用于获取所述目标数据帧对应的下一数据帧,将所述下一数据帧作为所述目标数据帧,执行所述对所述目标数据帧进行解差分处理的步骤;

原始数据生成单元233,用于当不存在所述下一数据帧时,基于所有所述原始数据帧,生成原始文件数据。

可选的,所述数据帧解差分单元232,具体用于:

当所述目标数据帧为所述第一类型数据帧时,对所述目标数据帧进行第一解差分处理,得到原始填充数据;

当所述目标数据帧为所述第二类型数据帧时,对所述目标数据帧进行第二解差分处理,得到原始差分数据。

可选的,所述数据帧解差分单元232,具体用于:

获取所述目标数据帧对应的重复字节信息,所述重复字节信息包括所述重复字节、填充长度、所述重复字节对应的第一数据长度以及所述重复字节在所有数据帧中的第一顺序;

基于所述重复字节信息进行第一解差分处理,得到所述目标数据帧对应的原始填充数据。

可选的,所述第二类型数据帧至少包括新增数据帧、第一差分数据帧以及第二差分数据帧,所述数据帧解差分单元232,具体用于:

当所述第一类型数据帧为新增数据帧时,获取所述新增数据帧的第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度,基于所述第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度进行第二解差分处理,得到原始新增数据;

当所述第一类型数据帧为第一差分数据帧时,获取所述第一差分数据帧的

第三数据长度、第二差分数据、第一数据地址;基于所述第三数据长度以及所述第一数据地址,获取所述第一数据地址处指示的第一参考数据;对所述第一参考数据以及所述第二差分数据进行第二解差分处理,得到第一原始差分数据;

当所述第一类型数据帧为第二差分数据帧时,获取所述第二差分数据帧的第四数据长度以及第二数据地址,获取所述第二数据地址处指示的第二参考数据中第二参考数据,对所述第二参考数据以及所述第四数据长度进行第二解差分处理,得到第二原始差分数据。

可选的,如图14所示,所述装置2,包括:

数据校验模块24,用于获取所述至少一类数据帧中各类型数据帧的帧顺序以及帧校验值,基于所述帧顺序以及所述帧校验值,进行数据校验。

需要说明的是,上述实施例提供的数据解压装置在执行数据解压方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据压缩装置与数据压缩方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。

在本申请实施例中,第二电子设备获取数据压缩包,对所述数据压缩包进行解压缩,得到至少一类数据帧,并基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。通过获取基于原始文件数据的至少一类特征数据重新编码后的且高压缩率的数据压缩包,只需对数据的开销(如内存开销、数据传输开销等)小的数据压缩包中的至少一类数据帧进行相应数据解码,就可以还原出数据压缩包对应的原始文件数据,在整个原始文件数据获取过程中,降低了数据的开销(如内存开销、数据传输开销等),缩短了获取原始文件数据的时间,提高了数据获取的效率,同时节省了设备资源;以及,根据不同类型的数据帧采用相对应的解码方式,最大化利用已还原数据(也即已解码字节或数据段)的复用率,大幅缩短对原始文件数据解码时间。

本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图1-图6所示实施例的所述数据压缩方法,具体执行过程可以参见图1-图6所示实施例的具体说明,在此不进行赘述。

本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图1-图6所示实施例的所述数据压缩方法,具体执行过程可以参见图1-图6所示实施例的具体说明,在此不进行赘述。

请参见图15,为本申请实施例提供了一种电子设备的结构示意图。如图15所示,所述电子设备1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。

其中,通信总线1002用于实现这些组件之间的连接通信。

其中,用户接口1003可以包括显示屏(display)、摄像头(camera),可选用户接口1003还可以包括标准的有线接口、无线接口。

其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个服务器1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行服务器1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。

其中,存储器1005可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图15所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据压缩应用程序。

在图15所示的电子设备1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的数据压缩应用程序,并具体执行以下操作:

获取原始文件数据包含的至少一类特征数据,获取所述至少一类特征数据中各类所述特征数据的数据信息;

基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧;

将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

在一个实施例中,所述处理器1001在执行所述获取原始文件数据包含的至少一类特征数据,获取各类所述特征数据的数据信息时,具体执行以下操作:

对原始文件数据进行重复字节计算,提取所述原始文件数据中的重复字节数据,并获取所述重复字节数据对应的重复字节信息;

对所述原始文件数据进行差分对比计算,提取所述原始文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息。

在一个实施例中,所述处理器1001在执行所述基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧时,具体执行以下操作:

按照所述重复字节数据对应的第一编码方式对所述重复字节信息进行数据编码,得到所述原始文件数据的至少一个第一类型数据帧;

按照所述差分字节数据对应的第二编码方式对所述差分字节信息进行数据编码,得到所述原始文件数据的至少一个第二类型数据帧。

在一个实施例中,所述处理器1001在执行所述对原始文件数据进行重复字节计算,提取所述原始文件数据中的重复字节数据,并获取所述重复字节数据对应的重复字节信息时,具体执行以下操作:

获取原始文件数据中至少一个重复字节,基于所述重复字节对所述原始文件数据进行分割计算处理,得到所述重复字节对应的重复字节信息,所述重复字节信息包括所述重复字节、填充长度、所述重复字节对应的第一数据长度以及所述重复字节在所有数据帧中的第一顺序;

所述按照所述重复字节数据对应的第一编码方式对所述重复字节数据进行数据编码,得到所述原始文件数据的至少一个第一类型数据帧,包括:

基于所述重复字节信息,生成所述原始文件数据对应的至少一个第一类型数据帧。

在一个实施例中,所述处理器1001在执行所述基于所述重复字节信息,生成所述原始文件数据对应的至少一个第一类型数据帧时,具体执行以下步骤:

当所述重复字节信息包含的所述重复字节的总长度大于帧长度阈值时,基于所述重复字节信息,生成至少一个第一类型数据帧。

在一个实施例中,所述处理器1001在执行所述对所述原始文件数据进行差分对比计算,提取所述原始文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息时,具体执行以下步骤:

按照预设的分块长度,对所述原始文件数据进行分割,得到至少两个数据块;

从所述至少两个数据块中获取目标数据块,将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理,得到所述目标数据块的差分字节数据;

获取所述差分字节数据对应的差分字节信息,并获取所述目标数据块的下一数据块,将所述下一数据块作为所述目标数据块并执行所述确定将所述目标数据块与所述目标数据块之前的所有数据块进行差分对比处理的步骤;

当不存在所述下一数据块时,得到所述原始文件数据中的所有所述差分字节信息。

在一个实施例中,所述差分字节信息至少包括第一差分信息、第二差分信息以及第三差分信息,所述处理器1001在执行所述所述按照所述差分字节数据对应的第二编码方式对所述差分字节数据进行数据编码,得到所述原始文件数据的至少一个第二类型数据帧时,具体执行以下步骤:

获取所述目标数据块的第一差分信息,所述第一差分信息包括第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度,基于所述第一差分信息,生成所述原始文件数据对应的新增数据帧;和/或,

获取所述目标数据块的第二差分信息,所述第二差分信息包括第二差分数据、所述第二差分数据在所有数据帧中的第三顺序、所述第二差分数据在所述目标数据块之前的所有数据块中的第一参考数据、所述第一参考数据对应的第一数据地址以及所述第一参考数据对应的第三数据长度,基于所述第三顺序、所述第一数据地址、所述第三数据长度以及所述第二差分数据,生成所述原始文件数据的第一差分数据帧,所述第二差分数据基于所述第一参考数据与所述第二差分信息对应的原始差分数据经逻辑运算后确定;和/或,

获取所述目标数据块的第三差分信息,所述第三差分信息包括第三差分数据、所述第三差分数据在所有数据帧中的第四顺序、所述第二参考数据对应的第四数据长度、所述第三差分数据在所述目标数据块之前的所有数据块中的第二数据地址,基于所述第四帧顺序、所述第四数据长度以及所述第二数据地址,生成所述原始文件数据的第二差分数据帧。

在一个实施例中,所述预设的分块长度为多个,所述处理器1001在执行所述数据压缩方法时,具体执行以下步骤:

基于多个预设的分块长度,确定各所述预设的分块长度对应的所述至少一个第二类型数据帧的编码效率;

确定各所述帧编码效率中的最高编码效率,确定所述最高帧编码效率指示的至少一个目标第二类型数据帧;

所述得到所述原始文件数据的至少一个第二类型数据帧,包括:

将所述至少一个目标第二类型数据帧作为所述原始文件数据的至少一个第二类型数据帧。

在一个实施例中,所述处理器1001在执行所述对原始文件数据进行重复字节计算,提取所述原始文件数据中的重复字节数据,并获取所述重复字节数据对应的重复字节信息之后,还执行以下步骤:

在所述原始文件数据中对所述重复字节数据进行滤除处理,得到滤除处理后的目标文件数据;

所述对所述原始文件数据进行差分对比计算,提取所述原始文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息,包括:

对所述目标文件数据进行差分对比计算,提取所述目标文件数据中的差分字节数据,并获取所述差分字节数据对应的差分字节信息。

在一个实施例中,所述处理器1001在执行所述将所述各类数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包时,具体执行以下步骤:

获取所述原始文件数据对应的目标压缩算法,基于所述目标压缩算法对所述各类数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。

在一个实施例中,所述处理器1001在执行所述获取所述原始文件数据的目标压缩算法时,具体执行以下步骤:

基于多个压缩算法分别对所述各类数据帧进行压缩处理,生成所述多个压缩算法分别对应的压缩数据包;

基于各所述压缩数据包确定所述多个压缩算法分别对应的压缩率,在各所述压缩率中确定最高压缩率,将所述最高压缩率指示的所述压缩算法作为目标压缩算法;

或,

获取所述原始文件数据对应的预设压缩算法。

在一个实施例中,所述处理器1001在执行所述数据压缩方法时,具体执行以下步骤:

获取数据封装包,对所述数据封装包进行解封装得到数据压缩包、以及所述数据压缩包对应的解压缩文件和数据帧解码文件。

在本申请实施例中,在本申请实施例中,第一电子设备获取原始文件数据包含的至少一类特征数据,获取各类所述特征数据的数据信息,基于各类所述特征数据的数据信息对应的编码方式分别对各类所述数据信息进行数据编码,得到各类所述数据信息分别对应的数据帧,将各类所述数据信息分别对应的数据帧进行压缩处理,得到所述原始文件数据对应的数据压缩包。通过获取对原始文件数据进行细分挖掘后的至少一类特征数据(也即数据编译特征),然后对各类特征数据进行数据编码,可以避免直接基于固定的压缩算法进行数据压缩时压缩率不高的问题,提高了数据压缩的压缩率,节省了数据的开销(如内存开销、数据传输开销等);以及,根据不同类型的各类特征数据的数据信息(如重复字节信息、差分信息)采用相对应的编码方式,最大化利用原始文件数据的特征数据,大幅提高对原始文件数据编码时已编码数据(也即已编码字节或数据段)的复用率;以及,可以先对原始文件数据中的重复字节数据进行编码并编码后对重复字节数据进行滤除,再基于滤除后的目标文件数据进行差分数据的编码,可以进一步提高对原始文件数据帧的编码效率或编码压缩率;以及,可以获取各种不同的压缩算法对各类数据帧编码时的最优压缩算法,进而获取最优压缩算法对各类数据帧编码后的数据压缩包,进一步提高压缩率。

请参见图16,为本申请实施例提供了另一种电子设备的结构示意图。如图16所示,所述电子设备2000可以包括:至少一个处理器2001,至少一个网络接口2004,用户接口2003,存储器2005,至少一个通信总线2002。

其中,通信总线2002用于实现这些组件之间的连接通信。

其中,用户接口2003可以包括显示屏(display)、摄像头(camera),可选用户接口2003还可以包括标准的有线接口、无线接口。

其中,网络接口2004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

其中,处理器2001可以包括一个或者多个处理核心。处理器2001利用各种借口和线路连接整个服务器2000内的各个部分,通过运行或执行存储在存储器2005内的指令、程序、代码集或指令集,以及调用存储在存储器2005内的数据,执行服务器2000的各种功能和处理数据。可选的,处理器2001可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器2001可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器2001中,单独通过一块芯片进行实现。

其中,存储器2005可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。可选的,该存储器2005包括非瞬时性计算机可读介质(non-transitorycomputer-readablestoragemedium)。存储器2005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图16所示,作为一种计算机存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及数据解压应用程序。

在图16所示的电子设备2000中,用户接口2003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器2001可以用于调用存储器2005中存储的数据解压应用程序,并具体执行以下操作:

获取数据压缩包;

对所述数据压缩包进行解压缩,得到至少一类数据帧;

基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。

在一个实施例中,所述处理器2001在执行所述获取数据压缩包,以及所述数据压缩包对应的解压缩文件和数据帧解码文件时,具体执行以下步骤:

获取数据封装包,对所述数据封装包进行解封装得到数据压缩包、以及所述数据压缩包对应的解压缩文件和数据帧解码文件。

在一个实施例中,所述处理器2001在执行所述基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据时,具体执行以下步骤:

基于所述数据帧解码文件对至少一个第一类型数据帧以及至少一个第二类型数据帧进行解差分处理,得到解差分处理后的原始文件数据。

在一个实施例中,所述处理器2001在执行所述基于所述数据帧解码文件对所述至少一个第一类型数据帧以及至少一个第二类型数据帧进行解差分处理,得到解差分处理后的原始文件数据时,具体执行以下步骤:

基于所述数据帧解码文件,获取至少一个所述第一类型数据帧以及至少一个所述第二类型数据帧中的目标数据帧;

对所述目标数据帧进行解差分处理,得到所述目标数据帧对应的原始数据帧;

获取所述目标数据帧对应的下一数据帧,将所述下一数据帧作为所述目标数据帧,执行所述对所述目标数据帧进行解差分处理的步骤;

当不存在所述下一数据帧时,基于所有所述原始数据帧,生成原始文件数据。

在一个实施例中,所述处理器2001在执行所述对所述目标数据帧进行解差分处理,得到所述目标数据帧对应的原始数据帧时,具体执行以下步骤:

当所述目标数据帧为所述第一类型数据帧时,对所述目标数据帧进行第一解差分处理,得到原始填充数据;

当所述目标数据帧为所述第二类型数据帧时,对所述目标数据帧进行第二解差分处理,得到原始差分数据。

在一个实施例中,所述处理器2001在执行所述对所述目标数据帧进行第一解差分处理,得到原始填充数据时,具体执行以下步骤:

获取所述目标数据帧对应的重复字节信息,所述重复字节信息包括所述重复字节、填充长度、所述重复字节对应的第一数据长度以及所述重复字节在所有数据帧中的第一顺序;

基于所述重复字节信息进行第一解差分处理,得到所述目标数据帧对应的原始填充数据。

在一个实施例中,所述第二类型数据帧至少包括新增数据帧、第一差分数据帧以及第二差分数据帧,所述处理器2001在执行所述所述目标数据帧进行第二解差分处理,得到原始差分数据时,具体执行以下步骤:

当所述第一类型数据帧为新增数据帧时,获取所述新增数据帧的第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度,基于所述第一差分数据、所述第一差分数据在所有数据帧中的第二顺序、所述第一差分数据对应的第二数据长度进行第二解差分处理,得到原始新增数据;

当所述第一类型数据帧为第一差分数据帧时,获取所述第一差分数据帧的

第三数据长度、第二差分数据、第一数据地址;基于所述第三数据长度以及所述第一数据地址,获取所述第一数据地址处指示的第一参考数据;对所述第一参考数据以及所述第二差分数据进行第二解差分处理,得到第一原始差分数据;

当所述第一类型数据帧为第二差分数据帧时,获取所述第二差分数据帧的第四数据长度以及第二数据地址,获取所述第二数据地址处指示的第二参考数据中第二参考数据,对所述第二参考数据以及所述第四数据长度进行第二解差分处理,得到第二原始差分数据。

在一个实施例中,所述处理器2001在执行所述基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码之前,还执行以下步骤:

获取所述至少一类数据帧中各类型数据帧的帧顺序以及帧校验值,基于所述帧顺序以及所述帧校验值,进行数据校验。

在本申请实施例中,第二电子设备获取数据压缩包,对所述数据压缩包进行解压缩,得到至少一类数据帧,并基于所述至少一类数据帧中各类数据帧对应的解码方式,对所述至少一类数据帧进行数据解码,得到所述数据压缩包对应的原始文件数据。通过获取基于原始文件数据的至少一类特征数据重新编码后的且高压缩率的数据压缩包,只需对数据的开销(如内存开销、数据传输开销等)小的数据压缩包中的至少一类数据帧进行相应数据解码,就可以还原出数据压缩包对应的原始文件数据,在整个原始文件数据获取过程中,降低了数据的开销(如内存开销、数据传输开销等),缩短了获取原始文件数据的时间,提高了数据获取的效率,同时节省了设备资源;以及,根据不同类型的数据帧采用相对应的解码方式,最大化利用已还原数据(也即已解码字节或数据段)的复用率,大幅缩短对原始文件数据解码时间。

本领域的技术人员可以清楚地了解到本申请的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(field-programmablegatearray,fpga)、集成电路(integratedcircuit,ic)等。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

以上所述者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1