数据压缩和解压缩的处理方法技术

技术编号:8131094 阅读:166 留言:0更新日期:2012-12-27 03:16
本发明专利技术提供一种数据压缩和解压缩的处理方法,数据压缩的处理方法包括以下步骤:获取压缩前文件大小;根据压缩前文件大小将所述压缩前文件分成n段,计算索引表大小,并于压缩文件的头位置处设置索引表;依序压缩每一分段并将压缩后的数据写入压缩文件中,并将每一分段在压缩文件中的起始位置记录至记录项中。本发明专利技术数据解压缩的处理方法包括以下步骤:接收用户请求指令;根据用户请求指令,计算获取数据的分段号,到索引表中读取起始位置;根据获取数据的起始位置依序读取各分段的数据并解压缩;将用户请求的数据返回给上层。本发明专利技术在压缩过程中,不需手为干预;而在解压缩过程中,根据用户请求分段解压缩,解压缩速度快。

【技术实现步骤摘要】

本专利技术涉及一种,特别是一种可实时压缩解压缩的。
技术介绍
便携式自动导航系统(PND)近几年应用越来越广泛,有人称它为GPS+PDA,但随着其功能的日趋多样化,地图数据量的不断增加,对存储空间大小的要求也越来越高,而且嵌入式系统不可能使用PC机广泛使用的大容量硬盘,只能使用体积小容量小的flash或iNand,这些嵌入式存储介质,其单位容量价格相对硬盘要高的多。所以很多嵌入式软件开发人员在编写程序时不得不考虑尽量减小自己程序及所用数据资源的大小,给嵌入式软件开发人员带来了很大的困扰。 程序和数据以压缩的方式存储,同样大小的存储介质上就能存储更多的数据。目前虽然有很多算法实现压缩解压缩,但都需要人为干预压缩解压缩,且现有的程序和数据是在整个文件解压缩后再使用,无法实现嵌入式系统的实时压缩解压缩。
技术实现思路
本专利技术的主要目的在于提供一种可实时压缩解压缩的。本专利技术提供一种数据压缩的处理方法,应用于文件系统驱动层,其包括以下步骤获取压缩前文件大小;根据压缩前文件大小将所述压缩前文件分成η段,计算索引表大小,并于压缩文件的头位置处设置索引表,所述索引表具有若干个记录项;依序压缩每一分段并将压缩后的数据写入压缩文件中,并将每一分段在压缩文件中的起始位置记录至记录项中,其中,第一分段在压缩文件中的起始位置为接续索引表之后,其余各分段在压缩文件中的起始位置为接续前一分段之后。特别地,所述数据压缩的处理方法应用于WinCE嵌入式系统中。特别地,压缩前每一分段的数据量为64ΚΒ。特别地,所述记录项还包括压缩前文件大小、索引表大小。特别地,一个记录项包括4个字节,索引表的大小为4096字节的整数倍。本专利技术还提供一种数据解压缩的处理方法,应用于文件系统驱动层,其包括以下步骤接收用户请求指令;根据用户请求指令,计算获取数据的分段号,到索引表中读取起始位置;根据获取数据的起始位置依序读取各分段的数据并解压缩;将用户请求的数据返回给上层。特别地,解压缩的算法为LZ77算法。特别地,若用户请求的数据小于64ΚΒ,则根据获取数据的起始位置读取所在分段的全部数据并解压缩。特别地,若用户请求的数据大于64ΚΒ,则获取数据的分段号至少为两个,根据第一分段获取数据的起始位置读取第一分段的数据并解压缩,然后,再根据下一分段获取数据的起始位置读取下一分段的数据并解压缩,直至获取数据中的所有分段均解压缩。特别地,解压缩后的数据按先进先出原则自动存放在缓存内。与现有技术相比较,本专利技术在压缩过程中,根据压缩前文件大小自动执行分段压缩,不需手为干预;而在解压缩过程中,根据用户请求分段解压缩,不需要解压缩整个文件,解压缩速度快。为对本专利技术的目的、构造特征及其功能有进一步的了解,兹配合附图详细说明如下 附图说明 图I为本专利技术中数据压缩的处理方法的流程图。图2为压缩文件的索引表示意图。图3为本专利技术中数据解压缩的处理方法的流程图。具体实施方式 请参阅图I及图2所示,本专利技术数据压缩的处理方法应用于文件系统驱动层,于本实施例中,所述数据压缩的处理方法应用于WinCE嵌入式系统中,其包括以下步骤 步骤201 :获取压缩前文件大小; 步骤202 :根据压缩前文件大小将所述压缩前文件分成η段,计算索引表大小,并于压缩文件的头位置处设置索引表,所述索引表具有若干个记录项;其中,压缩前每一分段的数据量为64ΚΒ。所述记录项还包括压缩前文件大小、索引表大小。一个记录项包括4个字节,索引表的大小为4096字节的整数倍,索引表的大小最小为4096字节。例如,若压缩前文件大小为64ΚΒ*200,则将所述压缩前文件分成200段,并于压缩文件的头位置处设置索引表,索引表的记录项包括压缩前文件大小、索引表大小、第一分段的起始位置、第二分段的起始位置、第三分段的起始位置……第200分段的起始位置。步骤203 :依序压缩每一分段并将压缩后的数据写入压缩文件中,并将每一分段在压缩文件中的起始位置记录至记录项中,其中,第一分段在压缩文件中的起始位置为接续索引表之后,其余各分段在压缩文件中的起始位置为接续前一分段之后。例如,索引表的大小为4096字节,第一分段压缩后为30ΚΒ,则第二分段在压缩文件中的起始位置为4096Β+30ΚΒ,第二分段压缩后为20ΚΒ,则第三分段在压缩文件中的起始位置为4096Β+30ΚΒ+20ΚΒ,以此类推。请参阅图3所示,本专利技术数据解压缩的处理方法应用于文件系统驱动层,其包括以下步骤 步骤301 :接收用户请求指令; 步骤302 :根据用户请求指令,计算获取数据的分段号,到索引表中读取起始位置; 步骤303 :根据获取数据的起始位置依序读取各分段的数据并解压缩; 其中,若用户请求的数据小于64ΚΒ,则根据获取数据的起始位置读取所在分段的全部数据并解压缩。若用户请求的数据大于64ΚΒ,则获取数据的分段号至少为两个,根据第一分段获取数据的起始位置读取第一分段的数据并解压缩,然后,再根据下一分段获取数据的起始位置读取下一分段的数据并解压缩,直至获取数据中的所有分段均解压缩。于本实施例中,解压缩的算法为LZ77算法,解压缩后的数据按先进先出原则自动存放在缓存内。步骤304 :将用户请求的数据返回给上层。本专利技术在压缩过程中,根据压缩前文件大小自动执行分段压缩,不需手为干预;而在解压缩过程中,根据用户请求分段解压缩,不需要解压缩整个文件,解压缩速度快。以上所 述,仅为本专利技术的具体实施方式,但本专利技术的保护范围并不局限于此,任何熟悉本
的技术人员在本专利技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本专利技术的保护范围之内。因此,本专利技术的保护范围应以权利要求的保护范围为准。本文档来自技高网
...

【技术保护点】
一种数据压缩的处理方法,应用于文件系统驱动层,其特征在于包括以下步骤:获取压缩前文件大小;根据压缩前文件大小将所述压缩前文件分成n段,计算索引表大小,并于压缩文件的头位置处设置索引表,所述索引表具有若干个记录项;依序压缩每一分段并将压缩后的数据写入压缩文件中,并将每一分段在压缩文件中的起始位置记录至记录项中,其中,第一分段在压缩文件中的起始位置为接续索引表之后,其余各分段在压缩文件中的起始位置为接续前一分段之后。

【技术特征摘要】
1.一种数据压缩的处理方法,应用于文件系统驱动层,其特征在于包括以下步骤 获取压缩前文件大小; 根据压缩前文件大小将所述压缩前文件分成η段,计算索引表大小,并于压缩文件的头位置处设置索引表,所述索引表具有若干个记录项; 依序压缩每一分段并将压缩后的数据写入压缩文件中,并将每一分段在压缩文件中的起始位置记录至记录项中,其中,第一分段在压缩文件中的起始位置为接续索引表之后,其余各分段在压缩文件中的起始位置为接续前一分段之后。2.根据权利要求I所述的数据压缩的处理方法,其特征在于所述数据压缩的处理方法应用于WinCE嵌入式系统中。3.根据权利要求I所述的数据压缩的处理方法,其特征在于压缩前每一分段的数据量为64ΚΒ。4.根据权利要求I所述的数据压缩的处理方法,其特征在于所述记录项还包括压缩前文件大小、索引表大小。5.根据权利要求I所述的数据压缩的处理方法,其特征在于一个记录项包括4个字节,索引表的大小为4096字节的整数倍。6.一种数...

【专利技术属性】
技术研发人员:刘晓丹
申请(专利权)人:环达电脑上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1