一种文件动态压缩方法及装置制造方法
【专利摘要】本发明公开了一种文件动态压缩方法,包括:从要压缩的文件中提取预定大小的部分;对所提取的预定大小的部分进行压缩;判断压缩完成后的压缩比例是否达到预定的压缩比例;若是,则对该文件进行压缩,否则不对该文件进行压缩。另外,本发明还提供一种文件动态压缩装置。利用本发明,可以实现对文件的动态压缩,可以有选择地对文件进行压缩,对不需进行压缩的文件可以直接进行传输,从而可以减少对CPU资源的占用。
【专利说明】一种文件动态压缩方法及装置
【技术领域】
[0001]本发明涉及计算机和网络领域,尤其涉及文件动态压缩方法及装置。
【背景技术】
[0002]在计算机和通信设备普及的今天,文件传输已是司空见惯的事。通常,在文件被传输前,当文件很大时,为了减少传输时间,会将整个文件进行全部压缩,这占用很大的CPU资源。而有些类型的文件,如图片、视频等,即使进行压缩也并不能将文件大小改变多少,但同时却占用了很大的CPU资源,所以,在遇到像图片、视频这种类型的文件时,可以选择不进行压缩。但是,对于一个文件是否要进行压缩,有的时候,通过查看其后缀名或文件格式来进行判断,但是并不能罗列所有的文件格式。文件格式的种类越来越多,对于并不常见的文件格式,根本无法识别是否能被压缩。
【发明内容】
[0003]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的文件动态压缩方法及装置。
[0004]依据本发明的一个方面,提供一种文件动态压缩方法,包括:从要压缩的文件中提取预定大小的部分;对所提取的预定大小的部分进行压缩;判断压缩完成后的压缩比例是否达到预定的压缩比例;若是,则对该文件进行压缩,否则不对该文件进行压缩。
[0005]可选地,根据本发明的文件动态压缩方法,在从要压缩的文件中提取的预定大小的部分的步骤之前还包括:判断要被压缩的文件的文件格式是否位于黑名单中,其中所述黑名单存储有不需要压缩的文件格式。当判断要被压缩的文件的文件格式不在黑名单中时,执行从要压缩的文件中提取预定大小的部分的步骤;当判断要被压缩的文件的文件格式在黑名单中时,不对该文件进行压缩。
[0006]根据本发明的另一方面,提供一种文件动态压缩装置,包括:提取模块,其适于从要压缩的文件中提取预定大小的部分;压缩模块,其适于对所述提取模块所提取的预定大小的部分进行压缩;以及压缩识别模块,其判断所述压缩模块压缩完成后的压缩比例是否达到预定的压缩比例。其中,当所述压缩识别模块判断压缩完成后的压缩比例达到预定的压缩比例时,所述压缩模块对该文件进行压缩;当所述压缩识别模块判断压缩完成后的压缩比例未达到预定的压缩比例时,所述压缩模块不再对该文件进行压缩。
[0007]可选地,根据本发明的文件动态压缩装置还包括:存储模块,其适于存储黑名单,该黑名单中存放不需要压缩的文件格式;判断模块,其适于判断要被压缩的文件的文件格式是否位于黑名单中。其中,当所述判断模块判断要被压缩的文件的文件格式不在黑名单中时,所述提取模块从要压缩的文件中提取预定大小的部分,然后所述压缩模块对所述提取模块所提取的预定大小的部分进行压缩;当所述判断模块判断要被压缩的文件的文件格式在黑名单中时,所述压缩模块不对该文件进行压缩。
[0008]利用本发明,可以实现对文件的动态压缩,可以有选择地对文件进行压缩,对不需进行压缩的文件可以直接进行传输,从而可以减少对CPU资源的占用。
[0009]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【专利附图】
【附图说明】
[0010]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0011]图1示出了根据本发明的一个实施例的文件动态压缩方法的流程图;
[0012]图2示出了根据本发明的一个实施例的文件动态压缩装置的方框图。
【具体实施方式】
[0013]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0014]本发明主要用于对要被传输的文件的压缩,在日常生活及工作中,经常需要将文件在网络中的两个设备之间进行传输,例如从本地客户端上传至服务器,或者从本地客户端传送至远程的另一个客户端,或者从一个服务器传送至另一服务器、或者从服务器下载至客户端等等。尤其,最近云端服务器为用户提供了方便使用的大容量的云存储器,只要用户将需要使用的文件上传至其自己的云存储器,就可以在不同的地方从云存储器上下载所需的文件,而无需携带移动硬盘、U盘等存储设备,不会担心因为存储设备损坏或者忘记携带而不能及时获得自己所需的文件的问题的出现。
[0015]为了方便用户传输文件,节省文件传输的时间,本发明提出了一种动态压缩方法
及装置。
[0016]图1示出了根据本发明的一种实施方式的文件动态压缩方法的流程图。如图1所示,本发明的方法100可以始于步骤S130,在步骤S130,从要被压缩的文件中提取预定大小的部分。所述预定大小的部分可以是从要被压缩的文件中抽取的512KB大小的部分,所述预定大小的具体数值可以根据情况来确定,只要能够显现出压缩比例即可,例如取512KB大小的部分。另外,所述预定大小的部分,可以从要被压缩的文件的最开始部分开始向后连续抽取,也可以从最末端部分开始向前连续抽取,还可以从中间部分抽取。
[0017]接下来,在步骤S150,对所提取的预定大小的部分进行压缩,即对文件进行预压缩。这里所采用的压缩工具可以是WINRAR、WINZIP等工具。
[0018]接下来,在步骤S170,判断压缩完成后的压缩比例是否达到预定的压缩比例,若是,则执行步骤S190,对该文件进行压缩;若不是,则执行步骤S160,不对该文件进行压缩。在步骤S190,当该文件预定大小的部分是从该文件的最开始抽取的情况下,可以在之前预压缩的基础上对该文件继续进行压缩,而不用再从头开始压缩整个文件;如果该文件预定大小的部分是从该文件的中间部分或者从最后往前抽取的情况下,则对整个文件从头开始进行压缩,由此可知,在抽取该文件的预定大小时,优选从文件的最开始进行抽取。当判断该文件预定大小的部分的压缩比例未达到预定的压缩比例时,不再对该文件进行压缩,则该文件可以被直接传输。
[0019]这里,所述的预定的压缩比例可以根据需求而设定,一般要压缩比例在15%以上才值得去压缩,当然,也可以定得高些,例如30%。
[0020]另外,可选地,在步骤S130之前还可以包括步骤SI 10,在步骤SI 10,判断要被压缩的文件的文件格式是否位于黑名单中,当判断要被压缩的文件的文件格式不在黑名单中时,执行步骤S130,当判断要被压缩的文件的文件格式在黑名单中时,执行步骤S160,不对该文件进行压缩。其中,所述黑名单中存放有不需要被压缩的文件格式,例如扩展名为jpg,zip, rar, pdf, wma, rmvb, rm, flash, mp4等的文件格式,这些文件格式的文件要么无法压缩,要么即使被压缩,压缩效果也不大。
[0021]通过使用黑名单,在执行步骤S130的预压缩之前,可以先行判断该文件是否要被压缩,如果该文件的文件格式在黑名单中,则判断该文件不需被压缩,直接进行文件传输即可;如果该文件的文件格式不在黑名单中,则说明该文件格式是未知的文件格式,不确定对其压缩的效果是否明显,为此可以执行步骤S130,尝试性地对其进行压缩,再通过步骤S170来进行判断是否需要对其进行压缩。
[0022]这里,黑名单可以是临时性文件,即只对本批要压缩的文件有效,不需长期保存,这时,黑名单存储在内存中即可。例如,有一大批.cad文件要被压缩后传输时,如果程序发现第一个.cad文件压缩比例不满足预期,那么就把.cad加到黑名单列表里,以后再传输下一个.cad文件时,就不会检测是否需要被压缩。另外,黑名单也可以是永久性文件,这时,其在本机中可以记录为配置文件,该配置文件中包含一个文件扩展名列表,例如包含.saz、.png等,在对文件压缩前,先确认其是否存在于黑名单中。
[0023]另外,可选地,在步骤S170,当判断压缩完成后的压缩比例未达到预定的压缩比例时,还可以执行如下步骤:将该文件的文件格式添加到所述黑名单中。这里的黑名单是长期保存的文件。这样,可以减少对一些文件格式类型的文件的预压缩。由于不在黑名单中的文件格式是未知的文件格式,具有这种文件格式的文件通常也不会有很多,所以,通常不需要将这种文件格式添加到黑名单中,因为如果在黑名单中存放太多的文件格式,虽然可以减少对一些文件格式类型的文件进行后续的预压缩,但在步骤SllO中进行判断时所耗费的时间会增加,而实际上对文件进行预压缩时,由于选取的文件大小大约为512KB左右,进行预压缩所花的时间非常短,另外,再加上这类文件比较少,所以总共对这类文件进行预压缩所花费的时间也不会太多,不象具有在黑名单中所存放的那些文件格式的文件,文件数量可能会比较大,如果一一进行预压缩和判断,累积的时间则可能会比较大。
[0024]本发明的上述方法,不仅适用于将文件上传至服务器侧,也适用于从服务器侧下载文件。为了加快从服务器侧下载文件的速度,在下载之前,可以将文件尺寸压缩得小一些,然后再进行传输,下载前对文件的压缩就可以采用本发明的方法进行压缩。当然,本发明的方法,不限于用于前面所述的情形,其可以广泛地用于任何两个通过网络连接的设备之间传输的文件。
[0025]另外,本发明还提供一种文件动态压缩装置,如图2所示,包括:提取模块225、压缩模块230和压缩识别模块240。[0026]其中,提取模块225适于从要压缩的文件中提取预定大小的部分。所述预定大小的部分可以是从要被压缩的文件中抽取的512KB大小的部分,所述预定大小的具体数值可以根据情况来确定,只要能够显现出压缩比例即可,例如取512KB大小的部分。另外,所述预定大小的部分,可以从要被压缩的文件的最开始部分开始向后连续抽取,也可以从最末端部分开始向前连续抽取,还可以从中间部分抽取。
[0027]压缩模块230适于对提取模块225所提取的预定大小的部分进行压缩,即对文件进行预压缩。这里所采用的压缩工具可以是WINRAR、WINZIP等工具。
[0028]压缩识别模块240判断压缩模块230对提取的预定大小部分压缩完成后的压缩比例是否达到预定的压缩比例。其中,当压缩识别模块240判断压缩模块230对提取的预定大小部分压缩完成后的压缩比例达到预定的压缩比例时,压缩模块230对该文件进行压缩,当该文件预定大小的部分是从该文件的最开始抽取的情况下,压缩模块230可以在之前预压缩的基础上对该文件继续进行压缩,而不用再从头开始压缩整个文件;如果该文件预定大小的部分是从该文件的中间部分或者从最后往前抽取的情况下,则压缩模块230需要对整个文件从头开始进行压缩,由此可知,在抽取该文件的预定大小时,优选从文件的最开始进行抽取。当压缩识别模块240判断压缩模块230压缩完成后的压缩比例未达到预定的压缩比例时,压缩模块230不再对该文件进行压缩,则该文件可以被直接传输。这里,所述的预定的压缩比例可以根据需求而设定,一般要压缩比例在15%以上才值得去压缩,当然,也可以定得高些,例如30%。
[0029]另外,本发明的装置200还可以包括存储模块210和判断模块220。其中,存储模块210适于存储黑名单,该黑名单中存放不需要压缩的文件格式,例如扩展名为pdf,wma,rmvb, rm, flash, mp4等的文件格式,这些文件格式的文件要么无法压缩,要么即使被压缩,压缩效果也不大。判断模块220适于判断要被压缩的文件的文件格式是否位于黑名单中。其中,当判断模块220判断要被压缩的文件的文件格式不在黑名单中时,提取模块225从要压缩的文件中提取预定大小的部分,然后压缩模块230对所提取的预定大小的部分进行压缩。当判断模块220判断要被压缩的文件的文件格式在黑名单中时,压缩模块230不对该文件进行压缩。通过使用黑名单,在压缩模块230进行预压缩之前,判断模块220可以先行判断该文件是否要被压缩,如果该文件的文件格式在黑名单中,则判断该文件不需被压缩,直接进行文件传输即可;如果该文件的文件格式不在黑名单中,再由压缩模块230进行预压缩。这里,黑名单可以是临时性文件,即只对本批要压缩的文件有效,不需长期保存,这时,黑名单存储在内存中即可。例如,有一大批.cad文件要被压缩后传输时,如果程序发现第一个.cad文件压缩比例不满足预期,那么就把.cad加到黑名单列表里,以后再传输下一个.cad文件时,就不会检测是否需要被压缩。另外,黑名单也可以是永久性文件,这时,其在本机中可以记录为配置文件,该配置文件中包含一个文件扩展名列表,例如包含.saz、.png等,在对文件压缩前,先确认其是否存在于黑名单中。
[0030]另外,可选地,在判断模块220判断要压缩的文件的文件格式不在黑名单中的情况下,且当压缩识别模块240判断对所提取的预定大小的部分压缩完成后的压缩比例未达到预定的压缩比例时,压缩识别模块240将该要被压缩的文件的文件格式添加到所述黑名单中。这里的黑名单是长期保存的文件。由于不在黑名单中的文件格式是未知的文件格式,具有这种文件格式的文件通常也不会有很多,所以,通常不需要将这种文件格式添加到黑名单中,因为如果在黑名单中存放太多的文件格式,虽然可以减少对一些文件格式类型的文件进行后续的预压缩,但判断模块220进行判断时所耗费的时间会增加,而实际上对文件进行预压缩时,由于选取的文件大小大约为512KB左右,进行预压缩所花的时间非常短,另外,再加上这类文件比较少,所以总共对这类文件进行预压缩所花费的时间也不会太多,不象具有在黑名单中所存放的那些文件格式的文件,文件数量可能会比较大,如果一一进行预压缩和判断,累积的时间则可能会比较大。
[0031]本发明的上述装置,不仅适用于将文件上传至服务器侧,也适用于从服务器侧下载文件。当从服务器侧下载文件时,通常为了加快下载速度,在下载之前,最好将文件尺寸压缩得小一些,然后再进行传输,而下载前对文件的压缩就可以采用本发明的上述装置进行压缩。当然,本发明的装置,不限于用于前面所述的情形,其可以广泛地用于任何两个通过网络连接的设备之间传输的文件的压缩
[0032]通过本发明的上述方法及装置,可以实现对文件的动态压缩,可以有选择地对文件进行压缩,对不需进行压缩的文件可以直接进行传输,从而可以减少对CPU资源的占用。
[0033]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0034]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0035]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0036]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0037]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0038]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0039]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
【权利要求】
1.一种文件动态压缩方法,包括: 从要压缩的文件中提取预定大小的部分; 对所提取的预定大小的部分进行压缩; 判断压缩完成后的压缩比例是否达到预定的压缩比例; 若是,则对该文件进行压缩,否则不对该文件进行压缩。
2.根据权利要求1所述的方法,在从要压缩的文件中提取预定大小的部分的步骤之前还包括: 判断要压缩的文件的文件格式是否位于黑名单中,其中所述黑名单存储有不需要压缩的文件格式; 当判断要压缩的文件的文件格式不在黑名单中时,执行所述从要压缩的文件中提取预定大小的部分的步骤;当判断要压缩的文件的文件格式在黑名单中时,不对该文件进行压 缩。
3.根据权利要求2所述的方法,其中, 在判断压缩完成后的压缩比例未达到预定的压缩比例时,将该文件的文件格式添加到所述黑名单中。
4.根据权利要求1-3中任何一项所述的方法,其中, 所述从要压缩的文件中提取的预定大小的部分从所述要压缩的文件的开头、中间部分、或者末尾提取。
5.根据权利要求1-4中任何一项所述的方法,其中,所述要压缩的文件为在两个通过网络连接的设备之间传输的文件。
6.一种文件动态压缩装置,包括: 提取模块,其适于从要压缩的文件中提取预定大小的部分; 压缩模块,其适于对所述提取模块所提取的预定大小的部分进行压缩;以及 压缩识别模块,其判断所述压缩模块压缩完成后的压缩比例是否达到预定的压缩比例; 其中,当所述压缩识别模块判断压缩完成后的压缩比例达到预定的压缩比例时,所述压缩模块对该文件进行压缩;当所述压缩识别模块判断压缩完成后的压缩比例未达到预定的压缩比例时,所述压缩模块不再对该文件进行压缩。
7.根据权利要求6所述的装置,还包括: 存储模块,其适于存储黑名单,该黑名单中存放不需要压缩的文件格式; 判断模块,其适于判断要压缩的文件的文件格式是否位于黑名单中; 其中,当所述判断模块判断要压缩的文件的文件格式不在黑名单中时,所述提取模块从要压缩的文件中提取预定大小的部分;当所述判断模块判断要压缩的文件的文件格式在黑名单中时,所述压缩模块不对该文件进行压缩。
8.根据权利要求7所述的装置,其中, 在所述判断模块判断要压缩的文件的文件格式不在黑名单中的情况下,且当所述压缩识别模块判断压缩完成后的压缩比例未达到预定的压缩比例时,所述压缩识别模块将该要压缩的文件的文件格式存放于所述存储模块中存储的所述黑名单中。
9.根据权利要求6-8中任何一项所述的装置,其中,所述提取模块提取的所述要压缩的文件的预定部分从所述要压缩的文件的开头、中间部分、或者末尾提取。
10.根据权利要求6-9中任何一项所述装置,其中, 所述要压缩的文件为在两个`通过网络连接的设备之间传输的文件。
【文档编号】G06F17/30GK103699587SQ201310656694
【公开日】2014年4月2日 申请日期:2013年12月6日 优先权日:2013年12月6日
【发明者】赵化强, 王林 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司