一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于多种数据压缩算法的解压缩方法和设备与流程

2022-06-25 05:17:19 来源:中国专利 TAG:


1.本发明涉及计算机件控制技术领域,尤其涉及基于多种数据压缩算法的解压缩方法和设备。


背景技术:

2.现有数据压缩算法非常多,其中则包括lz4,snappy,lzma2等算法,然而每种算法的对外接口和使用规范都不一样,因此在软件编写中每个开发人员都会遇到每种算法如何使用,更重要的是每种算法都有压缩后需要相对应的算法才能够解压,然而很多情况下并不知道数据是何种压缩算法,从而解压时需要额外的注意和关联从而不会出错,从而造成了开发人员都需要去熟悉每套算法的使用方法。尤其是对于需要一些压缩数据量的统计时,则需要对每种算法独立计算和记录,从而造成了大量冗余代码,也容易计算出错。


技术实现要素:

3.本发明提供了一种基于多种数据压缩算法的解压缩方法,封装多种数据压缩算法类型,并设置压缩算法和解压缩模型之间的关联算法,以使所述压缩算法与解压算法对应,实现任一压缩算法压缩数据的解压操作。
4.本发明提供的技术方案为:
5.一种基于多种数据压缩算法的解压缩方法,包括:
6.封装多种数据压缩算法类型;
7.设置与所述压缩算法类型相对应的压缩查询接口和解压接口;
8.封装多种数据压缩算法,以使所述压缩查询接口对应所述压缩算法;
9.封装解压算法,以使所述压缩算法解压接口对应所述解压算法;
10.设置关联算法模型,以使所述压缩算法与所述解压算法对应,实现任一压缩算法压缩数据的解压操作。
11.优选的是,所述封装多种数据压缩算法类型,其包括如下步骤:
12.定义枚举类;
13.在所述枚举类内定义关于数据压缩算法类型的成员变量;
14.并为所述成员变量赋值,以标记所述数据压缩算法类型的个数。
15.优选的是,所述设置压缩查询接口,其包括如下步骤:
16.定义封装类;
17.在所述封装类内定义一个成员变量,以记录每种压缩算法的类型;
18.定义压缩查询接口,并设置第一指针,使传入数据压缩参数对应返回压缩返回值;
19.设置第一智能指针包装所述第一指针;
20.其中,所述数据压缩参数为传入的原始数据,所述压缩返回值为压缩后的数据;
21.所述设置解压接口,其包括如下步骤:
22.定义解压接口,并设置第二指针,使传入数据解压参数对应返回解压返回值,所述
数据解压参数为传入的压缩数据,所述解压返回值为解压后的数据;
23.设置第二智能指针包装所述第二指针;
24.其中,所述第一智能指针和所述第二智能指针均为unique_ptr型智能指针,以包装所述第一指针和所述第二指针。
25.优选的是,所述多种数据压缩算法的封装过程,包括如下步骤:
26.创建继承类,继承所述封装类,以实现所述压缩查询接口调用所述数据压缩解压算法;
27.在所述继承类内创建基类指针,并定义每种数据压缩算法类型对应的压缩等级;
28.设置等级判断模板,以根据所述压缩等级判断出对应的的压缩算法。
29.优选的是,所述压缩查询接口对应所述压缩算法的过程,包括如下步骤:
30.创建压缩指针,并定义每种原始数据类型对应的压缩等级;
31.将所述原始数据分配给对应的压缩数据算法类型;
32.调用对应的压缩数据算法,对所述原始数据进行压缩得到压缩后的数据;
33.将所述压缩后的数据作为结果数据储存。
34.优选的是,所述压缩算法解压接口对应所述解压算法的过程,包括如下步骤:
35.定义多个结构体,以分别存储解压模型的指针;
36.在所述解压模型指针内,定义依据参数,以传入解压算法的类型和等级;
37.定义一个常量数组,以存储所述多个结构体;
38.所述常量数组中填充解压接口,通过传入的参数压缩算法类型返回对应的压缩算法指针;
39.其中,所述解压接口对应解压算法,所述结构体个数与算法个数相同。
40.优选的是,所述关联算法模型的设置过程,包括如下步骤:
41.创建解压缩指针,并使数据压缩参数对应解压算法的类型;
42.遍历选择解压算法,并调用所述解压接口得到对应的压缩算法指针,实现数据解压;
43.并获取解压后的数据;
44.当解压后的数据长度不为0时,将解压后数据作为结果输出,并排除其他解压算法。
45.优选的是,还包括:
46.压缩算法的创建监控接口,其用于监控压缩的算法的创建过程,以记录所述压缩算法的创建包括创建算法类型、等级和当前创建的时间
47.压缩算法的压缩监控接口,其用于监控压缩算法的调用过程,以记录当前数据压缩前大小,压缩后大小、压缩开始时间和结束时间;
48.压缩算法的解压监控接口,其用于监控解压算法的调用过程和调用算法耗费的时间,记以录当前数据解压缩前大小、解压后大小、解压开始时间和解压结束时间。
49.一种电子设备,包括应用处理器和存储器,所述处理器用于实现所述存储器中存储的计算机管理程序式时实现基于多种数据压缩算法的解压缩方法的步骤。
50.一种计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现基于多种数据压缩算法的解压缩方法的步骤。
51.有益效果
52.本发明提供了一种基于多种数据压缩算法的解压缩方法,封装多种数据压缩算法类型,并设置压缩算法和解压缩模型之间的关联算法,以使所述压缩算法与解压算法对应,实现任一压缩算法压缩数据的解压操作,任意类型的数据的解压操作在一个算法中完成,避免了输入多种独立的算法模型,造成数据冗余和容易出错的问题。
53.本发明中的压缩算法模型和解压算法模型均采用unique_ptr智能指针包装,使返回结果保障数据只有一份,以自动销毁不会造成内存泄露。
54.本发明还在解压算法模型和压缩算法模型中设置监控则可以方便的记录下整个程序对数据解压的过程和总的统计数据。从而基于每种算法和数据量数据消耗时间,也方便依据实际使用情况来统计出哪种算法更高效,压缩率更高等,同时也方便提供整个程序压缩或者解压的数据量有多大。
附图说明
55.图1为本发明所述的基于多种数据压缩算法的解压缩方法流程图。
56.图2为本发明所述的设置关联算法模型的流程图。
57.图3为本发明提供的电子设备的构成图。
58.图4为本发明提供的控制器的构成图。
具体实施方式
59.以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
60.需要说明的是,在本发明的描述中,术语“中”、“上”、“下”、“横”、“内”等指示的方向或位置关系的术语是基于附图所示的方向或位置关系,这仅仅是为了便于描述,而不是指示或暗示所述装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
61.此外,还需要说明的是,在本发明的描述中,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可根据具体情况理解上述术语在本发明中的具体含义。
62.如图1所示,基于背景技术提出的技术问题,本发明提供了一种基于多种数据压缩算法的解压缩方法,包括:
63.步骤s110、封装多种数据压缩算法类型;其中,算法类型包括但不限于 lz4,snappy,lzma2等算法类型;具体的说,封装多种数据压缩算法类型包括如下子步骤:
64.定义枚举类;
65.在枚举类内定义关于数据压缩算法类型的成员变量;
66.为成员变量赋值,以标记数据压缩算法类型的个数;
67.具体的说,其实现过程由如下代码实现:
68.enum class codecdatatype{
69.lz4=1,
70.snappy=2,
71.lzma2=3,
72.num_types=4}
73.其中,codecdatatype为枚举类,用于记录每种压缩算法的类型,lz4=1,lz4的算法值定义为1;snappy=2,snappy的算法值定义为2;lzma2= 3,lzma2的算法值定义为3;num_types=4,num_types算法值定义为4;在本实施例中,只列举了四种压缩算法,在实际应用中,不局限于上述四种压缩算法,如果还有其他算法则,继续添加算法的定义值,并使定义值唯一。
74.需要特别说明的是,通过步骤s110定义枚举类并利用数值标记算法类型的总个数能够记录每种压缩算法的类型和算法类型个数,便于后续程序维护中添加其他算法,并实现易于建立关联算法模型的有益效果。
75.步骤s120、设置与压缩算法类型相对应的压缩查询接口和解压接口;压缩查询接口与算法类型相对应,解压接口为单个解压接口;
76.具体的说,设置与压缩算法类型相对应的压缩查询接口和解压接口的具体实现过程包括如下子步骤:
77.定义封装类;
78.在封装类内定义一个成员变量,以记录每种压缩算法的类型;
79.定义压缩查询接口,并设置第一指针,使传入数据压缩参数对应返回压缩返回值;其中,数据压缩参数为传入的原始数据,压缩返回值为压缩后的数据;
80.定义解压接口,并设置第二指针,使传入数据解压参数对应返回解压返回值;数据解压参数为传入的压缩数据,解压返回值为解压后的数据。
81.其具体实现过程,由如下代码实现:
82.class codecdata{
83.codecdatatype type_;
84.codecdatatype type()const{return type_;}
85.unique_ptr《databuf》compress(const databuf*data,int level)=0;
86.unique_ptr《databuf》uncompress(const databuf*data)=0;
87.其中,codecdata表示封装类,用于将压缩查询接口和解压接口封装, codecdatatype type_;表示定义的成员变量,用于记录每种压缩算法的类型。 codecdatatype type()const{return type_;}提供接口得到当前算法的类型。 unique_ptr《databuf》compress(const databuf*data,int level)=0;表示数据压缩接口,参数则是提供原始数据,返回值则是返回压缩后的数据。 unique_ptr《databuf》uncompress(const databuf*data)=0;表示数据解压接口,参数传入压缩过的数据,返回值则是解压后的数据。
88.需要特别说明的是,在步骤s120中使用unique_ptr型智能指针包装压缩查询接口
对应的第一指针和解压接口的第二指针,返回结果保障数据只有一份,当对象被销毁时,会在其析构函数中删除关联的原始指针,实现自动销毁原始指针的有益效果,不会造成内存泄露。
89.并且,在步骤120中定义databuf是封装了原始数据和数据长度的接口,实现了便于存储数据和获取数据基础类的有益效果。
90.步骤s130、封装多种数据压缩算法,以使压缩查询接口对应压缩算法;
91.具体的说,封装多种数据压缩算法,以使压缩查询接口对应压缩算法,具体包括如下子步骤:
92.创建继承类,继承压缩查询接口和解压接口的封装类,以实现压缩查询接口调用所述数据压缩解压算法;
93.具体的实现过程为:压缩算法编译在已发布组件中,可以根据需求在组件中选择编译的组件,并通过宏来控制是否报刊压缩算法和是否发布到组件中;
94.#if have_templatelib
95.#include《xxx.h》
96.#endif。其中,所有相关的后续代码和算法使用宏have_libsnappy包含。
97.创建继承类,以继承压缩查询接口和解压接口的封装类;
98.class templatecodecdata
99.final:public codecdata{templatecodecdata
100.static unique_ptr《codecdata》create(int level,codecdatatype type}
101.其中,templatecodecdata表示创建的继承类,用于继承自codecdata并实现相关调用对应具体的算法的数据压缩解压算法,staticunique_ptr《codecdata》create(int level,codecdatatype type)表示返回值是一个智能指针的codecdata的基类指针,从而可以实现数据压缩解压功能。
102.需要特别说明的是,通过创建继承类,继承压缩查询接口和解压接口的封装类,通过继承可以获得封装类的所有功能,并且可以重写已有功能,添加新功能,实现便于后续程序维护中添加其他算法接口的有益效果,且便于实现数据压缩功能。
103.创建基类指针,并定义每种数据压缩算法类型对应的压缩等级;
104.具体的说:设置等级判断模板,以及根据所述压缩等级判断出对应的的压缩算法,具体的算法实现过程,包括如下步骤:
105.首先,对参数的合法性检查,因为不同的压缩算法存在提供了不同的压缩等级,而每种算法的等级制定需要依据具体的算法来判断,具体的实现过程为:
106.switch(level){
107.case level_fastest:
108.case level_best;
109.level=1;}
110.if(level!=1)
111.throw std::invalid_argument(("invalid level:",level));
112.teturn make_unique《templatecodecdata》(level,type);
113.其中,level为压缩等级,level_fastest为急速压缩,level_best 为最好压缩,if
(level!=1)如果当前level值不是1,则说明不是上面的算法压缩等级,即参数传入存在问题,抛出错误异常以提示开发者参数问题,throwstd::invalid_argument(("invalid level:",level));抛出一个错误异常,teturnmake_unique《templatecodecdata》(level,type);创建一个templatecodecdata 的实例并且使用智能指针返回。
114.需要特别说明的是,本实施例中,按照压缩等级对参数进行合法性检查有效避免导致崩溃问题的出现,实现了提高解压算法的稳定性的有益效果。
115.然后,使压缩查询接口对应压缩算法,实现压缩接口的功能,其具体步骤如下:
116.unique_ptr《databuf》compress(const databuf*data,int level){
117.auto out=databuf::create();。
118.size_t n=template::compress(&data,&out);
119.其中,unique_ptr《databuf》compress(const databuf*data,int level)为创建压缩指针,并定义每种原始数据类型对应的压缩等级;
120.auto out=databuf::create()表示将原始数据分配给对应的压缩数据算法类型;即分配结果数据内存;size_t n=template::compress(&data,&out);调用具体原始提供的算法来对数据进行压缩。然后返回压缩的结果数据存储在out变量中return out。
121.需要特别说明的是,本实施例中为创建压缩指针,并定义每种原始数据类型对应的压缩等级,通过分配结果数据内存的方式雕鹰打的原始算法进行数据压缩,实现了提高压缩算法的稳定性的有益效果
122.步骤s140、封装解压算法,以使所述压缩算法解压接口对应所解压算法;所述压缩算法解压接口对应所解压算法,解压缩数据接口的实现如下:
[0123][0124]
其中,unique_ptr《databuf》uncompress(const databuf*data)表示创建的压缩指针;try{if(!template::getuncompressedlength(&data,&actual))表示判断数据是否是对应算法的解压算法;通过算法输入压缩后的数据并获取解压后的数据长度{throwstd::runtime_error("template::uncompressedlengthfailed"),如果获取不到长度数据则说明出现了问题。auto out= databuf::create();分配结果数据内存;if(!template::rawuncompress(&data,out)) 调用解压算法;throw runtime_error("
rawuncompress failed")表示如果解压失败抛出异常,catch(...){数据错误不能够进行解压,此次则可以记录下错误情况。
[0125]
需要特别说明的是,本实施例中由于存在解压比压缩复杂一些,为保证对应的压缩算法的数据对应的算法来解压,对数据长度进行检查,并且进行保护防止程序出现错误数据而崩溃,实现了提高压缩算法的稳定性的有益效果。
[0126]
步骤s150、设置关联算法模型,以使压缩算法与解压算法对应,实现任一压缩算法压缩数据的解压操作;即实现自动解压功能。
[0127]
如图2所示,具体的说,其实现过程包括如下子步骤:
[0128]
步骤s151、定义解压数据的解压模型,具体的实现代码如下:
[0129]
struct codecstorye{
[0130]
unique_ptr《codecdata》(*)(codecdatatype,int)codec;};
[0131]
其中,struct codecstorye表示定义一个结构体来存储解压模型的指针; unique_ptr《codecdata》(*)(codecdatatype,int)codec;表示存储一个依据参数传入解压算法的类型和level来创建一个解压算法的指针。
[0132]
需要特别说明的是,基于步骤s151这种设定方便的对于每种算法填入是否支持和是否不支持的功能,且根据裁剪大小填入支持对应的算法,实现了有效筛选支持解压算法的有益效果。
[0133]
步骤s152、编写判断是否携带输入算法对应的解压模型,具体的说,其具体的实现代码如下:
[0134][0135]
其中,constexpr codecstorye定义了一个常量的数组用于存储多个 codecstorye对象,codecstorye的个数使之前定义好的codecdatatype的总个数num_types,#if have_templatelib表示如果有定义这个模板算法; {templatecodecdata::create}表示网数组中填充对应算法的创建接口。#else{}, 否则,说明不需要把此算法编译进代码中,必须填入一个空的数组,从而保障算法循序还是按照定义codecdatatype,#endif其他的算法参照上面的模式来添加。
[0136]
需要特别说明的是,基于步骤s152的设定避免顺序错误导致程序出现问题同时方便添加新的算法,使用常量数组,内容不会改变,实现指针不被篡改的有益效果。
[0137]
步骤s153、编写所有解压模型的遍历功能,需要提供接口来获取对应的数据解压模型的指针从而可以调用其接口来对数据进行解压,具体的实现过程包括如下步骤:
[0138]
codecstorye const&getfactory(codecdatatype type){
[0139]
auto const idx=static_cast《size_t》(type);
[0140]
if(idx》=static_cast《size_t》(codectype::num_types)){
[0141]
throw invalid_argument(("type",idx,"invalid"));
[0142]
return codecstoryes[idx]。
[0143]
其中,codecstorye const&getfactory(codecdatatype type)表示接口则通过传入的参数压缩算法类型来返回对应的压缩算法指针。auto const idx= static_cast《size_t》(type表示需要将类型参数转换为数组的序号。然后对传入的数组序号检测器合法性是否满足置的算法的所有个数,进而达到容错的目的。if(idx》=static_cast《size_t》(codectype::num_types))表示如果比所有算法还大,抛出异常表明此参数存在问题。throw invalid_argument(("type",idx, "invalid"));抛出参数错误的异常避免程序崩溃。return codecstoryes[idx];参数合法则返回对应的函数的指针。接口给外部调用,其中只需要输入压缩后的数据,返回值是解压的数据,而内部功能细节则会实现对压缩数据如何解压的功能。
[0144]
需要特别说明的是,基于步骤s153的设定编写所有解压模型的遍历功能,将类型参数转换为数组的序号,实现了容错性好的有益效果。
[0145]
步骤s154、实现自动解压的功能,自动解压的功能需要找到所有的解压算法,并且在之前的步骤中定义了统一的算法接口,其具体的实现过程为:
[0146][0147][0148]
其中,unique_ptr《databuf》autouncompress(databuf*data,codecdatatypetype表示解压缩指针,参数type是优选的猜测解压算法,优先尝试此算法来解压。codecstorye const&code=getfactory(type)表示调用之前编写的接口来得到对应算法的指针,从而使用其解压数据,result=codec-》uncompress(data, uncompressedlength)表示如果此时数据长度正确则我们直接返回结果returnresult解压结束。否则需要尝试其他算法,并排除掉已经尝试过的这个type 的算法。try表示使用异常捕获来防止错误的解压算法导致程序崩溃。for (auto it:codecstoryes_)表示基于之前codecstoryes_存储
所有算法的创建接口,基于每个成员来创建一个对应的算法指针。nique_ptr《codecdata》codec =codecstoryes[it]表示调用存储的接口来获取对应的解压算法指针。result= codec-》uncompress(data,uncompressedlength)表示调用解压接口来获取解压后的数据result result则是解压后的结果数据,如果result数据长度不为0,说明解压成功并且没有抛出异常,说明解压正确。return result表示返回解压数据。如果当前的算法不能解压则会解压出错,选择下一个算法来解压。 catch(std::exception const&e)表示产生错误抛出了异常,还可以继续执行其他算法的解压操作。
[0149]
需要特别说明的是,基于步骤s154的设定通过猜测解压算法,优选尝试进行解压,能够减小解压算法的耗时时间,并通过检查数据长度实现了提高解压算法的稳定性的有益效果。
[0150]
需要特别说明的是,多种数据压缩算法类型,并设置压缩算法和解压缩模型之间的关联算法,以使所述压缩算法与解压算法对应,实现任一压缩算法压缩数据的解压操作,实现了任意类型的数据的解压操作在一个算法中完成的有益效果,避免了输入多种独立的算法模型,造成数据冗余和容易出错的问题。
[0151]
本实施例中可以获取所有不同解压算法的统一接口,来逐个调用解压算法,直到有一个解压算法不会报错,解压的数据是正确的,说明当前解压算法正好是需要选择的解压算法,从而得到解压后的数据。实现技巧由于如果用不同的压缩后的数据来使用错误的解压算法可能会导致程序崩溃,因必须在异常捕获的情况下来执行,从而出错可以继续执行而不会导致程序崩溃。出于程序速度上的考虑,在使用自动解压算法时,可以提供一个可选的算法类型,以表示开发者认为该数据非常大的可能是该算法,从而优先尝试该算法,提高程序的执行效率,而不需要去尝试其他算法,如果此算法成功则直接返回解压数据。
[0152]
在另一实施例中,还设置有监控中心,包括:压缩算法的创建监控接口、压缩算法的压缩监控接口和压缩算法的解压监控接口。
[0153]
其中,压缩算法的创建监控接口,其用于监控压缩的算法的创建过程,压缩算法的调用过程;具体的说,由如下代码实现:
[0154]
monitor::registercreate(type,level,time());
[0155]
在封装压缩算法完成后,利用监控中心来对特定的某种算法进行统一管理和监控。其中调用了监控中心monitor的registercreate来记录算法的创建包括创建算法类型,等级,当前创建的时间。
[0156]
压缩算法的压缩监控接口,其用于监控压缩算法的调用过程;具体的说,由如下代码实现:
[0157]
monitor::registercompress(type,data-》size(),out-》size(),time(),timeend);调用监控中心的压缩数据记录,来记录当前数据压缩前大小,压缩后大小和压缩开始时间和结束数据,从而便于统计算法消耗的时间。
[0158]
压缩算法的解压监控接口,其用于监控解压算法的调用和调用算法的耗时时间。具体的说,由如下代码实现:
[0159]
monitor::registeruncompress(type,data-》size(),out-》size(),time(),timeend);调用监控中心的压缩数据记录来记录当前数据解压缩前大小,解压后大小和解压开始时间和结束数据,从而便于统计算法消耗的时间。
[0160]
监控中心包括monitor::registercreate压缩算法的创建接口,压缩算法的压缩监控接口monitor::registercompress,压缩算法的解压监控接口 monitor::registeruncompress,这3个接口分别记录压缩的算法的创建,压缩算法的调用,解压算法的调用,以及调用算法的耗时时间,
[0161]
需要特别说明的是,本实施例中每种加解密算法中都进行了监控,可以方便的记录下整个程序对数据解压的过程和总的统计数据。从而基于每种算法和数据量数据消耗时间,也方便依据实际使用情况来统计出哪种算法更高效,压缩率更高等,实现了记录整个程序压缩或者解压的数据量大小的有益效果。
[0162]
如图3所示,在另一实施例中,本发明还提供了一种电子设备,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序211,处理器220执行计算机程序211时实现基于多种数据压缩算法的解压缩方法的以下步骤。
[0163]
封装多种数据压缩算法类型;
[0164]
设置与所述压缩算法类型相对应的压缩查询接口和解压接口;
[0165]
封装多种数据压缩算法,以使所述压缩查询接口对应所述压缩算法;
[0166]
封装解压算法,以使所述压缩算法解压接口对应所述解压算法;
[0167]
设置关联算法模型,以使所述压缩算法与解压算法对应,实现任一压缩算法压缩数据的解压操作。
[0168]
在具体实施过程中,处理器220执行计算机程序211时,可以实现图1-2 对应的实施例中任一实施方式。
[0169]
由于本实施例所介绍的电子设备为实施本技术实施例中实现多种数据压缩算法的解压缩方法所采用的设备,故而基于本技术实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍,只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。
[0170]
作为一种优选,本发明提供的计算机程序211存储在控制器内。
[0171]
如图4所示,本实施例提供了控制器,其上存储有计算机程序211,该计算机程序211被处理器执行时实现如下步骤:
[0172]
封装多种数据压缩算法类型;
[0173]
设置与所述压缩算法类型相对应的压缩查询接口和解压接口;
[0174]
封装多种数据压缩算法,以使所述压缩查询接口对应所述压缩算法;
[0175]
封装解压算法,以使所述压缩算法解压接口对应所述解压算法;
[0176]
设置关联算法模型,以使所述压缩算法与解压算法对应,实现任一压缩算法压缩数据的解压操作。
[0177]
在具体实施过程中,该计算机程序211被控制器执行时可以实现图1-2 对应的实施例中任一实施方式。
[0178]
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
[0179]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0180]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/ 或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0181]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0182]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤
[0183]
本发明提供的计算机可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现基于多种数据压缩算法的解压缩方法的步骤,本发明封装多种数据压缩算法类型,并设置压缩算法和解压缩模型之间的关联算法,以使所述压缩算法与解压算法对应,实现任一压缩算法压缩数据的解压操作。
[0184]
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献