一种数据压缩方法和解压方法与流程

文档序号:17440927发布日期:2019-04-17 04:45阅读:195来源:国知局
一种数据压缩方法和解压方法与流程

本申请涉及存储技术领域,特别涉及一种数据压缩方法、装置和设备,还涉及一种数据解压方法、装置和设备。



背景技术:

随着大数据和虚拟化技术的快速发展和广泛应用,在当今这个海量数据和存储设备剧增的时代,存储应用系统千变万化,并且在不断地进行系统升级甚至更新换代。然而,由于不同存储系统所默认使用的压缩算法也可能发生了变更,因此,当系统升级后,很可能会出现无法读取系统升级前压缩存储的数据的情况,这严重影响到了存储系统的正常使用并降低了用户体验。鉴于此,提供一种解决上述技术问题的方案是本领域技术人员所亟需关注的。



技术实现要素:

本申请的目的在于提供一种数据压缩方法、装置和设备,本申请的另一目的在于提供一种数据解压方法、装置和设备,以便有效提高适用性和兼容性,解决因系统升级而导致的压缩数据无法正常读取的问题,保障存储系统的正常使用。

为解决上述技术问题,第一方面,本申请公开了一种数据压缩方法,包括:

获取目标原数据;

采用预设压缩算法,将所述目标原数据压缩生成目标压缩数据;

生成压缩信息数据,所述压缩信息数据包括所述预设压缩算法的信息数据;

按照预设封装标准,将所述压缩信息数据和所述目标压缩数据封装生成压缩数据包,以便在读取所述压缩数据包时根据所述压缩信息数据解压所述目标压缩数据生成所述目标原数据。

可选地,所述将所述目标原数据压缩生成目标压缩数据包括:利用硬件压缩卡将所述目标原数据压缩生成所述目标压缩数据;

所述压缩信息数据还包括所述硬件压缩卡的驱动的版本数据。

可选地,所述将所述压缩信息数据和所述目标压缩数据封装生成压缩数据包包括:

将所述压缩信息数据作为包头数据与所述目标压缩数据封装为所述压缩数据包。

第二方面,本申请还公开了一种数据解压方法,包括:

获取将压缩信息数据和目标压缩数据按照预设封装标准封装生成的压缩数据包;所述目标压缩数据由目标原数据经预设压缩算法压缩生成,所述压缩信息数据包括所述预设压缩算法的信息数据;

根据所述预设封装标准获取所述压缩信息数据和所述目标压缩数据;

根据所述压缩信息数据确定所述预设压缩算法;

根据所述预设压缩算法将所述目标压缩数据解压生成所述目标原数据。

可选地,所述压缩信息数据还包括硬件压缩卡的驱动的版本数据;

在所述根据所述压缩信息数据确定所述预设压缩算法之后,还包括:

获取所述硬件压缩卡的驱动的所述版本数据;

下载并安装与所述版本数据对应的所述硬件压缩卡的驱动,以便利用所述硬件压缩卡,根据所述预设压缩算法将所述目标压缩数据解压生成所述目标原数据。

可选地,所述根据所述预设封装标准获取所述压缩信息数据包括:

根据所述预设封装标准,获取位于所述压缩数据包的包头区段内的所述压缩信息数据。

第三方面,本申请还公开了一种数据压缩装置,包括:

原数据获取模块,用于获取目标原数据;

压缩模块,用于采用预设压缩算法,将所述目标原数据压缩生成目标压缩数据;

记录模块,用于生成压缩信息数据,所述压缩信息数据包括所述预设压缩算法的信息数据;

封装模块,用于按照预设封装标准,将所述压缩信息数据和所述目标压缩数据封装生成压缩数据包,以便在解压所述压缩数据包时根据所述压缩信息数据解压所述目标压缩数据生成所述目标原数据。

第四方面,本申请还公开了一种数据解压装置,包括:

压缩包获取模块,用于获取将压缩信息数据和目标压缩数据按照预设封装标准封装生成的压缩数据包;所述目标压缩数据由目标原数据经预设压缩算法压缩生成,所述压缩信息数据包括所述预设压缩算法的信息数据;

解封模块,用于根据所述预设封装标准获取所述压缩信息数据和所述目标压缩数据;

确定模块,用于根据所述压缩信息数据确定所述预设压缩算法;

解压模块,用于根据所述预设压缩算法将所述目标压缩数据解压生成所述目标原数据。

第五方面,本申请还公开了一种数据压缩设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上所述的任一种数据压缩方法的步骤。

第六方面,本申请还公开了一种数据解压设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上所述的任一种数据解压方法的步骤。

本申请所提供的数据压缩方法包括:获取目标原数据;采用预设压缩算法,将所述目标原数据压缩生成目标压缩数据;生成压缩信息数据,所述压缩信息数据包括所述预设压缩算法的信息数据;按照预设封装标准,将所述压缩信息数据和所述目标压缩数据封装生成压缩数据包,以便在读取所述压缩数据包时根据所述压缩信息数据解压所述目标压缩数据生成所述目标原数据。可见,本申请利用了可用于确定目标原数据被压缩为目标压缩数据时的预设压缩算法的压缩信息数据,将其与目标压缩数据一同构成了压缩数据包进行存储,从而使得即使存储系统默认的压缩算法在后续读取该压缩数据包时发生了变更,系统仍然可以根据压缩信息数据而确定出与该目标压缩数据对应的预设压缩算法,从而成功解压获取目标原数据,解决了因系统升级等导致的压缩数据无法正常读取的问题,保障了存储系统的正常使用,有效地提高了适用性和兼容性,并有效提高了用户体验。本申请所提供的数据压缩装置、设备以及数据解压方法、装置和设备均同样具有上述有益效果。

附图说明

为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。

图1为本申请所提供的一种数据压缩方法的流程图;

图2为本申请所提供的一种数据解压方法的流程图;

图3为本申请所提供的一种数据压缩装置的结构框图;

图4为本申请所提供的一种数据解压装置的结构框图。

具体实施方式

本申请的核心在于提供一种数据压缩方法、装置和设备,本申请的另一核心在于提供一种数据解压方法、装置和设备,以便有效提高适用性和兼容性,解决因系统升级而导致的压缩数据无法正常读取的问题,保障存储系统的正常使用。

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

本申请实施例公开了一种数据压缩方法,参照图1所示,该方法主要包括以下步骤:

s11:获取目标原数据。

s12:采用预设压缩算法,将目标原数据压缩生成目标压缩数据。

s13:生成压缩信息数据,压缩信息数据包括预设压缩算法的信息数据。

s14:按照预设封装标准,将压缩信息数据和目标压缩数据封装生成压缩数据包,以便在读取压缩数据包时根据压缩信息数据解压目标压缩数据生成目标原数据。

具体地,由于现有技术中在进行压缩存储时,仅仅是将目标原数据压缩后的目标压缩数据进行存储,并没有记录下压缩过程中所具体使用的压缩算法,因此,一旦当存储系统升级或者其他原因而更换了压缩算法之后,系统将无法成功解压出使用最初压缩算法压缩生成的数据,造成用户在系统升级之前的压缩数据都不能使用,严重影响到了存储系统的业务运行和用户体验。

基于此,本申请所提供的数据压缩方法中,在利用当前的预设压缩算法将目标原数据压缩生成目标压缩数据之后,还会进一步将有关于该预设压缩算法的信息数据作为压缩信息数据同样存储下来。所说的预设压缩算法的信息数据用于确定该预设压缩算法,具体可包括该预设压缩算法的标识编号(本领域技术人员可自行设计)和相关算法参数等。同时,为了便于识别,压缩信息数据本身无需进行压缩。

此外,目标压缩数据与其压缩信息数据可具体按照一定的封装标准即所说的预设封装标准而组成一个压缩数据包以便进行存储。容易理解的是,预设封装标准是用于识别一个压缩数据包中哪部分数据为目标压缩数据、以及哪部分数据为压缩信息数据的。

其中,作为一个优选实施例,所说的预设封装标准具体可以为:将压缩信息数据作为包头数据与目标压缩数据封装为压缩数据包。

具体地,本领域技术人员一般习惯将控制类或者标识类信息置于包头,因此优选地,可将压缩信息数据作为包头数据。在此基础上,包尾还可设置校验数据,本领域技术人员可自行选择并设置实现,本申请对此并不进行限定。

由此,当后续在读取该压缩数据包时,便可以按照预设封装标准在压缩数据包中分别准确识别出目标压缩数据和压缩信息数据,并根据压缩信息数据确定出该目标压缩数据所对应的预设压缩算法,进而可根据确定出的该预设压缩算法对目标压缩数据进行解压,从而成功获取对应的目标原数据。

本申请所提供的数据压缩方法,通过获取目标原数据;采用预设压缩算法,将目标原数据压缩生成目标压缩数据;生成压缩信息数据,压缩信息数据包括预设压缩算法的信息数据;按照预设封装标准,将压缩信息数据和目标压缩数据封装生成压缩数据包,以便在解压压缩数据包时根据压缩信息数据解压目标压缩数据生成目标原数据。可见,本申请利用了可用于确定目标原数据被压缩为目标压缩数据时的预设压缩算法的压缩信息数据,将其与目标压缩数据一同构成了压缩数据包进行存储,从而使得即使存储系统默认的压缩算法在后续读取该压缩数据包时发生了变更,系统仍然可以根据压缩信息数据而确定出与该目标压缩数据对应的预设压缩算法,从而成功解压获取目标原数据,解决了因系统升级等导致的压缩数据无法正常读取的问题,保障了存储系统的正常使用,有效地提高了适用性和兼容性,并有效提高了用户体验。

本申请所提供的数据压缩方法,在上述内容的基础上,作为一种优选实施例,将目标原数据压缩生成目标压缩数据包括:

利用硬件压缩卡将目标原数据压缩生成目标压缩数据;

所述压缩信息数据还包括硬件压缩卡的驱动的版本数据。

具体地,在将目标原数据压缩为目标压缩数据时,具体可采用软件压缩和硬件压缩两种方式。其中,硬件压缩方式所使用的压缩工具即为硬件压缩卡,它需要存储系统安装对应的驱动。由于硬件压缩卡的驱动也存在有升级的情况,因此,在本实施例中,优选地,还可以将硬件压缩卡的驱动的版本数据也作为压缩信息数据,与预设压缩算法的信息数据一同存储下来,以便在读取压缩数据包时也确定出对应的硬件压缩卡的驱动,以成功完成目标原数据的解压读取。

还需补充的是,优选地,为了便于后续功能完善或者其他功能的开发,除了预设压缩算法的信息数据和硬件压缩卡驱动的版本数据以外,本领域技术人员还可以在压缩信息数据中设置一个预留字段,以便应对添加其他数据的需求。

下面对本申请所提供的数据解压方法进行介绍。参照图2所示,该方法主要包括以下步骤:

s21:获取将压缩信息数据和目标压缩数据按照预设封装标准封装生成的压缩数据包;目标压缩数据由目标原数据经预设压缩算法压缩生成,压缩信息数据包括预设压缩算法的信息数据。

s22:根据预设封装标准获取压缩信息数据和目标压缩数据。

s23:根据压缩信息数据确定预设压缩算法。

s24:根据预设压缩算法将目标压缩数据解压生成目标原数据。

本申请所提供的数据解压方法的具体内容可对应参考前文所述的数据压缩方法,相同内容这里就不再赘述。

本申请所提供的数据解压方法,通过获取将压缩信息数据和目标压缩数据按照预设封装标准封装生成的压缩数据包;其中,目标压缩数据由目标原数据经预设压缩算法压缩生成,压缩信息数据包括预设压缩算法的信息数据;根据预设封装标准获取压缩信息数据和目标压缩数据,并根据压缩信息数据确定预设压缩算法;从而根据预设压缩算法将目标压缩数据解压生成目标原数据。可见,本申请利用了可用于确定目标原数据被压缩为目标压缩数据时的预设压缩算法、并与目标压缩数据一同构成压缩数据包而进行存储的压缩信息数据,使得即使存储系统默认的压缩算法在后续读取该压缩数据包时发生了变更,系统仍然可以根据压缩信息数据而确定出与该目标压缩数据对应的预设压缩算法,从而成功解压获取目标原数据,解决了因系统升级等导致的压缩数据无法正常读取的问题,保障了存储系统的正常使用,有效地提高了适用性和兼容性,并有效提高了用户体验。

本申请所提供的数据解压方法,在上述内容的基础上,作为一种优选实施例,压缩信息数据还包括硬件压缩卡的驱动的版本数据;

在根据压缩信息数据确定预设压缩算法之后,还包括:

获取硬件压缩卡的驱动的版本数据;

下载并安装与版本数据对应的硬件压缩卡的驱动,以便利用硬件压缩卡,根据预设压缩算法将目标压缩数据解压生成目标原数据。

本申请所提供的数据解压方法,在上述内容的基础上,作为一种优选实施例,根据预设封装标准获取压缩信息数据包括:

根据预设封装标准,获取位于压缩数据包的包头区段内的压缩信息数据。

下面对本申请所提供的数据压缩装置进行介绍。

请参阅图3,图3为本申请所提供的一种数据压缩装置的结构框图,包括:

原数据获取模块31,用于获取目标原数据;

压缩模块32,用于采用预设压缩算法,将目标原数据压缩生成目标压缩数据;

记录模块33,用于生成压缩信息数据,压缩信息数据包括预设压缩算法的信息数据;

封装模块34,用于按照预设封装标准,将压缩信息数据和目标压缩数据封装生成压缩数据包,以便在解压压缩数据包时根据压缩信息数据解压目标压缩数据生成目标原数据。

可见,本申请所提供的数据压缩装置,利用了可用于确定目标原数据被压缩为目标压缩数据时的预设压缩算法的压缩信息数据,将其与目标压缩数据一同构成了压缩数据包进行存储,从而使得即使存储系统默认的压缩算法在后续读取该压缩数据包时发生了变更,系统仍然可以根据压缩信息数据而确定出与该目标压缩数据对应的预设压缩算法,从而成功解压获取目标原数据,解决了因系统升级等导致的压缩数据无法正常读取的问题,保障了存储系统的正常使用,有效地提高了适用性和兼容性,并有效提高了用户体验。

在上述内容基础上,作为一种优选实施例,本申请所提供的数据压缩装置中,压缩模块32具体用于:利用硬件压缩卡将目标原数据压缩生成目标压缩数据;压缩信息数据还包括硬件压缩卡的驱动的版本数据。

在上述内容基础上,作为一种优选实施例,本申请所提供的数据压缩装置中,封装模块34具体用于:将压缩信息数据作为包头数据与目标压缩数据封装为压缩数据包。

下面对本申请所提供的数据解压装置进行介绍。

请参阅图4,图4为本申请所提供的一种数据解压装置的结构框图,包括:

压缩包获取模块41,用于获取将压缩信息数据和目标压缩数据按照预设封装标准封装生成的压缩数据包;目标压缩数据由目标原数据经预设压缩算法压缩生成,压缩信息数据包括预设压缩算法的信息数据;

解封模块42,用于根据预设封装标准获取压缩信息数据和目标压缩数据;

确定模块43,用于根据压缩信息数据确定预设压缩算法;

解压模块44,用于根据预设压缩算法将目标压缩数据解压生成目标原数据。

可见,本申请所提供的数据解压装置,利用了可用于确定目标原数据被压缩为目标压缩数据时的预设压缩算法、并与目标压缩数据一同构成压缩数据包而进行存储的压缩信息数据,使得即使存储系统默认的压缩算法在后续读取该压缩数据包时发生了变更,系统仍然可以根据压缩信息数据而确定出与该目标压缩数据对应的预设压缩算法,从而成功解压获取目标原数据,解决了因系统升级等导致的压缩数据无法正常读取的问题,保障了存储系统的正常使用,有效地提高了适用性和兼容性,并有效提高了用户体验。

在上述内容基础上,作为一种优选实施例,本申请所提供的数据解压装置中,压缩信息数据还包括硬件压缩卡的驱动的版本数据;解压模块44具体用于:获取硬件压缩卡的驱动的版本数据;下载并安装与版本数据对应的硬件压缩卡的驱动;利用硬件压缩卡,根据预设压缩算法将目标压缩数据解压生成目标原数据。

在上述内容基础上,作为一种优选实施例,本申请所提供的数据解压装置中,解封模块42具体用于:根据预设封装标准,获取位于压缩数据包的包头区段内的压缩信息数据。

进一步地,本申请还公开了一种数据压缩设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上所述的任一种数据压缩方法的步骤。

进一步地,本申请还公开了一种数据解压设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上所述的任一种数据解压方法的步骤。

本申请中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需说明的是,在本申请文件中,诸如“第一”和“第二”之类的关系术语,仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。此外,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请所提供的技术方案进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。

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