解压压缩文件时减小存储需求的方法和系统技术方案

技术编号:4262631 阅读:450 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种对压缩文件进行解压缩的方法和系统。根据本发明专利技术的方法,包括:输入步骤,从所述压缩文件中读入一压缩的数据块;解压缩步骤,对所述压缩的数据块进行解压缩;输出步骤,将解压缩的数据存储到解压缩文件中;删除步骤,从所述压缩文件中删除所述已经解压缩的压缩数据块。本发明专利技术提供的方法和系统减少了在压缩格式和解压缩格式之间数据的不必要的重复,不仅能够在解压缩过程中减少存储空间需求,而且不会对现有的压缩/解压缩算法作重大改变,很容易被集成到现有的压缩/解压缩工具中。

【技术实现步骤摘要】

本专利技术涉及计算机软件技术,特别地,涉及解压压缩文件时减小存储i殳备空间需求的方法和系统
技术介绍
文件压缩是一种通过对原始文件中的信息进行编码,从而使用较少字 节的文件来表达该原始文件中的信息的过程。文件压缩是非常有用的,因 为文件压缩大大减少了资源的消耗,例如,信息保存时,压缩文件可以减少对存储资源的需求,信息传输时,压缩文件可以减少对带宽的需求,等 等。由于这些需求,压缩技术发展很快,涌现出大量的压缩算法,不同的 压缩算法会采用不同的压缩格式,例如微软的Window操作系统中常用的 ZIP、 RAR格式,Linux/Unix操作系统常用的gz、 bz格式等。文件压缩可以将多个文件压缩成一个文件,因此,当对较多的文件进 行压缩时,或者对一个非常大的原始文件进行压缩时,压缩文件仍然很大。 当解压缩作为一个整体过程,被压缩的数据在整个解压缩过程中,在存储 设备(例如磁盘或磁带)中保持不变,这样,为了成功地解压缩一个大小 为S的压缩文件,在解压缩完成之前,至少需要2S大小的存储空间。这 样的存储空间要求对于较大的压缩文件是很难满足的。现有技术已经提出了一些对压缩文件减少存储空间需求的解决办法。 第一种方法是解压缩完成后删除被压缩的数据;这种方法的典型例子是 Linux中的bunzip2,其当解压缩完全完成后,默认将自动删除压缩文件。第二种方法是对压缩文件进行选择性地解压缩。WinRAR及WinZip 就是采用该方法的典型例子,这两种软件允许用户在未解压压缩文件前浏5览该压缩文件,当压缩文件中的一个或多个文件#皮选择并且净皮打开时,解 压方法就直接启动。但是,这两种方法实际上都是将解压的文件存储到存储设备上,但是 对于某些领域的数据,如《艮行交易数据,石油业的监测数据,气象观测涉 及的数据、科学计算涉及的数据,或者多媒体数据等,这些数据的数据量非常大,备除的压缩文件也非常大,例如地震行业中超过100G字节的数 据库是非常常见的。这样大的#压缩文件在解压缩时就需要非常大的存 储空间,加上解压后的文件,仅仅这两个文件的大小,存储空间也常常不 能满足这种要求。
技术实现思路
因此,需要一种在解压缩过程中减少存储空间需求的方法和系统,该 方法和系统能解决现有方法不能满足解压缩过程中减少存储空间需求的问 题。才艮据本专利技术的一个方面,提供了一种对压缩文件进行解压缩的方法, 包括输入步骤,从所述压缩文件中读入一压缩的数据块;解压缩步骤, 对所述压缩的数据块进行解压缩;输出步骤,将解压缩的数据存储到解压 缩文件中;删除步骤,从所述压缩文件中删除所述已经解压缩的压缩数据 块。根椐本专利技术的另 一个方面,提供了 一种对压缩文件进行解压缩的系统, 包括输入装置,用于从所述压缩文件中读入一压缩的数据块的装置;解 压缩装置,用于对所述压缩的数据块进行解压缩的装置;输出装置,用于 将解压缩的数据存储到解压缩文件中的装置;删除装置,用于从所述压缩文件中删除所述已经进行解压缩的压缩数据块的装置。本专利技术提供的方法和系统减少了在压缩格式和解压缩格式之间数据的 不必要的重复,不仅能够在解压缩过程中减少存储空间需求,而且不会对 现有的压缩/解压缩算法作重大改变,很容易被集成到现有的压缩/解压缩工 具中。附图说明通过对附图中本专利技术示例实施例方式的更详细描述,本专利技术的上述、 以及其它目的、特征和优势将变得更加明显,其中,相同的参考标号通常 代M专利技术示例实施例方式中的相同部件。图1示意性地示出了才艮据本专利技术的一个优选的实施方式的解压缩方法流程图2示意性地示出了一个分块压缩的方法流程图; 图3示意性地示出了根据图2的压缩方法对应的解压缩方法的流程; 图4示意性地示出了具有压缩标志的压缩数据; 图5示意性地示出了压缩数据并生成压缩标志的方法流^E; 图6示意性地示出了使用图5压缩流程的压缩文件解压缩过程; 图7示意性地示出了解压缩数据緩冲区和输入^t据的偏移地址的关系 示意图8示意性地示出了方案3的解压缩流程;图9a示意性地示出了一个优选实施方式的解压缩过程;图9b示意性地示出了图9a解压缩过程对应的压缩翁:据删除过程;以及图10示意性地示出了本专利技术所用的解压缩系统。 具体实施例方式将参照附图更加详细地描述本专利技术的优选实施方式,在附图中显示了 本专利技术的优选实施例。然而,本专利技术可以以各种形式实现而不应该理解为 被这里阐述的实施例所限制。相反,提供这些实施例是为了使本专利技术更加 透彻和完整,并且,完全将本专利技术的范围传ii^本领域的技术人员。通常的解压缩技术在完成整个解压缩过程中,会在存储空间(例如硬 盘或i兹带等)保持原始压缩数据不变,如果原始压缩数据过大,解压缩过 程中存储空间不足,会造成解压缩失败。本专利技术提出了一种在解压缩过程中减少存储空间需求的方法,该方法在解压缩时,全部的压缩数据被分成若干块,每个数据块的大小可以相同, 也可以不同,分块可以由用户指定固定大小分块或不同大小分块,这样就 可以一边解压缩原始压缩文件, 一边删除部分已经解压缩的压缩文件的内 容,从而减少在解压缩过程中需要的存储空间。图1示意性地示出了根据本专利技术的一个优选的实时方式的解压缩方法 流程图,该流程在解压缩过程中能够减少存储空间的需求。在图1中,首先在步骤sioi,开始解压缩过程,该开始过程也可以认为是一个初始化过程,用户可以在开始的初始化过程得到分块信息,也可能是用户自己对数据分块等等。这里假设全部压缩数据的大小为M。在步骤S102,从全部压 缩文件中读入一个数据块,假设该数据块的大小为M1(MKM),在步骤 S103,使用现有的解压缩方法解压读入的该压缩的数据块;在步骤S104, 将解压后的数据输出到解压缩文件中,個^殳解压后的该数据块大小为Nl, 全部压缩的数据解压后的数据大小为N(NKN),然后在步骤S105,从压缩 文件(大小为M)中删除已经被解压的压缩翁:据块(大小为Ml),然后 返回步骤S102,继续读入下一压缩数据块进行解压。由上面的解压过程描 述可以看出,原始的压缩文件占用的存储空间在不断减小,解压后的数据 文件占用的存储空间不断加大,在读入第k个数据块时,整体占用的存储 空间为M-Ml-...-Mk+Nl+...+Nk其所占用的存储空间比现有4支术少 Ml+...+Mk。当原始压缩文件全部解压完毕时,压缩文件占用的存储空间 将4^释放出来,这时该方法整体占用的存储空间为N,所占用的存储空 间比现有技术少M。由于压缩/解压缩方法比较特殊,很多算法要利用数据之间的相关性, 因此,上述方法的具体实现中还有很多具体的要求,例如,数据分成多少 个数据块,每个数据块如何处理等,下面将提供四种不同的具体的实施方 案,来实现图1中的方法。当然,本领域技术人员在本专利技术提供的技术方 案下,可以知道还有很多种其它的实现方法,具体数据如何分块,并不影 响本专利技术的实现。因此,本专利技术提供的具体实施例并不构成对本专利技术的限 制,相反,在本专利技术构思下的其它技术方案都被认为包含在本专利技术的保护范围之内。方案l:在该技术方案中,为了进行解压缩,在压缩时将原始数据分块,原始 数据块之间是相互独立的,因此,可以对每个原始数据块单元分别压缩, 然后将压缩结果融合在一起,成为压缩后的数据,同时,压缩后本文档来自技高网
...

【技术保护点】
一种对压缩文件进行解压缩的方法,包括: 输入步骤,从所述压缩文件中读入一压缩的数据块; 解压缩步骤,对所述压缩的数据块进行解压缩; 输出步骤,将解压缩的数据存储到解压缩文件中; 删除步骤,从所述压缩文件中删除所述已经 解压缩的压缩数据块。

【技术特征摘要】
1.一种对压缩文件进行解压缩的方法,包括输入步骤,从所述压缩文件中读入一压缩的数据块;解压缩步骤,对所述压缩的数据块进行解压缩;输出步骤,将解压缩的数据存储到解压缩文件中;删除步骤,从所述压缩文件中删除所述已经解压缩的压缩数据块。2. 根据权利要求1所述的方法,其中,所述压缩文件中包含了压缩 数据的分块信息。3. 根据权利要求2所述的方法,其中,其中所述压缩数据的分块信 息通过所述压缩文件中的数据块表或者所述压缩文件中的数据块之间的压缩标志表示o4. 根据权利要求3所述的方法,其中所述压缩文件在压缩时是分数 据块独立压缩的,数据块之间没有相关性。5. 根据权利要求l所述的方法,其中所述解压缩步骤进一步包括 对所述压缩的数据块进行解压缩时,只获得该压缩的数据块的部分解压缩结果;对未在所述压缩的数据块完成解压缩的压缩数据,加入到下一个待解 压缩的数据块。6. 根据权利要求1或5所述的方法,其中在所述删除步骤之前还包括判断后续解压缩过程是否需要先前的数据;响应于后续解压缩过程需要先前的数据,存储后续压缩过程需要的先 前的数据。7. 根据权利要求5所述的方法,其中所述未在所述压缩的数据块完 成解压缩的压缩数据采用输入数据的偏移地址表示。8. 根据权利要求1所述的方法,其中删除步骤和其它步骤是在不同 的流程中实现的,其中,所述其它步骤在解压缩流程完成,所述删除步骤在删除流程完成,所述其它步骤包括所述输入步骤,所述解压缩步骤和所 述输出步骤。9. 根据权利要求8所述的步骤,其中所述解压缩流程在所述压缩文 件中加入标志,该标志表明该标志前的数据可以被删除,所述解压缩流程 和删除流程通过所述标志交换信...

【专利技术属性】
技术研发人员:桂剑郑勇聂洪杰于维英
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1