專利名稱:批量計(jì)算機(jī)文件的遍歷性壓縮和解壓縮方法
技術(shù)領(lǐng)域:
本發(fā)明所屬的領(lǐng)域是信息技術(shù)。
背景技術(shù):
批量計(jì)算機(jī)文件常常需要進(jìn)行遍歷性壓縮處理。這些文件中可能既有需要壓縮的文件,如bitmap文件等,也有不需要壓縮的文件,如Mp3文件等。
傳統(tǒng)的壓縮方法,如Zip壓縮,它們不對其中的文件類型進(jìn)行識別和區(qū)分,對所有的文件都一律采用同一種無損壓縮編碼進(jìn)行壓縮。采用這種方法,實(shí)現(xiàn)起來比較簡單,但它既不能使需要壓縮的文件獲得充分的壓縮效果,也不能使不需要壓縮的文件不予壓縮,以避免浪費(fèi)處理時(shí)間。
本公司的發(fā)明專利“計(jì)算機(jī)文件的智能壓縮和解壓縮方法”(中國專利號ZL01124158.6,美國專利號US6,460,044BI),雖然描述了對于人工選擇的一組擬壓縮/解壓縮的計(jì)算機(jī)文件,如何更有效的進(jìn)行壓縮/解壓縮的方法,但未描述對于任意一批計(jì)算機(jī)文件應(yīng)如何自動地進(jìn)行遍歷性壓縮/解壓縮處理。
發(fā)明內(nèi)容
本發(fā)明是對上述發(fā)明的改進(jìn)。本發(fā)明的目的是為批量計(jì)算機(jī)文件進(jìn)行遍歷性壓縮/解壓縮處理提供一種自動的和高效的壓縮/解壓縮方法。本發(fā)明也可用于對任意一個(gè)計(jì)算機(jī)文件自動進(jìn)行適宜的壓縮/解壓縮處理。
本發(fā)明可用軟件、硬件或軟硬件相結(jié)合的方式來實(shí)現(xiàn)。其流程框圖如下所示。
圖1壓縮操作流程框圖A圖2壓縮操作流程框圖B圖3壓縮操作流程框圖C圖4解壓縮操作流程框圖。
具體實(shí)施例方式
本發(fā)明的壓縮操作,系統(tǒng)中需有這樣設(shè)定的兩組文件類型1.A組文件類型,即不需要進(jìn)行壓縮的文件類型。它們可以是已進(jìn)行充分壓縮的文件,例如Mp3文件;它們也可以是不宜進(jìn)行壓縮的文件,例如存在計(jì)算機(jī)中需頻繁進(jìn)行檢索的文件等。
由于這些文件不需進(jìn)行壓縮,其文件格式可以是已知的,也可以是未知的,并且這些文件類型可僅用文件擴(kuò)展名列表來表示。
2.B組文件類型,即需要用特定的壓縮算法進(jìn)行壓縮的文件類型。這些文件類型的文件格式需是已知的,并且它們的數(shù)據(jù)信息,或是適于采用有損壓縮,如音頻信息,視頻信息;或是具有比系統(tǒng)采用的通用無損編碼更有效的無損壓縮算法,如黑白圖象。
這些文件類型需由兩個(gè)列表來表示一個(gè)是文件擴(kuò)展名列表;另一個(gè)是與其相對應(yīng)的文件控制信息列表。
A.在壓縮方起始端的一批計(jì)算機(jī)文件是由用戶指定的,其它操作將由計(jì)算機(jī)系統(tǒng)按照圖1的流程框圖自動進(jìn)行。從用戶指定的一批計(jì)算機(jī)文件中任取一個(gè)文件,然后判定它是否屬于A組文件類型,亦即它是否需要進(jìn)行壓縮的文件。為此系統(tǒng)需驗(yàn)證該文件的文件擴(kuò)展名是否包括在A組文件的文件擴(kuò)展名列表中。如果是,則直接送至圖一中G框,即送至BCF文件包中。如果不是,則進(jìn)入下一步操作B.驗(yàn)證它是否屬于B組文件類型,亦即它是否需用特定的算法進(jìn)行壓縮的文件類型。此時(shí)系統(tǒng)將首先驗(yàn)證該文件的擴(kuò)展名是否列在B組文件的文件擴(kuò)展名列表中,如果是,系統(tǒng)將接著驗(yàn)證該文件的控制信息是否與B組文件控制信息列表中的相應(yīng)控制信息正好相符。如果上述兩個(gè)驗(yàn)證都是肯定的,則該文件屬于B組文件類型;如果有任一驗(yàn)證是否定的,則該文件不屬于B組文件類型。
C.如果該文件不屬于B組文件類型,則系統(tǒng)自動采用系統(tǒng)預(yù)設(shè)的通用無損壓縮編碼(例如LZW)壓縮該文件。
D.如果該文件屬于B組文件類型,則系統(tǒng)將決定它是只包含一種數(shù)據(jù)信息類型的簡單文件(例如一個(gè)bmp圖象),或是包含多種數(shù)據(jù)信息類型的復(fù)合文件(例如一個(gè)既包含文本信息也包含圖象信息的ppt文件,或包含多個(gè)文件的文件包)。
E.對于一個(gè)簡單文件,根據(jù)該文件的文件格式,系統(tǒng)將可自動識別該文件包含的數(shù)據(jù)信息類型,并自動采用一種適當(dāng)?shù)膲嚎s編碼。例如,對于文本信息或X光照片,系統(tǒng)將自動采用無損壓縮,對于一個(gè)彩色照片,系統(tǒng)將根據(jù)用戶的選擇,自動采用有損或無損壓縮。
F.對于一個(gè)復(fù)合文件,根據(jù)該文件的文件格式,系統(tǒng)將自動對它進(jìn)行信息單元拆分,令每個(gè)信息單元只包含一種數(shù)據(jù)信息類型。系統(tǒng)可以采用與上述E相似的方式,自動壓縮每一個(gè)信息單元中的數(shù)據(jù)信息。
G.為了保存上述那些被壓縮過的數(shù)據(jù)信息和相應(yīng)的控制信息,系統(tǒng)需定義自身的文件包格式。該格式可由系統(tǒng)設(shè)計(jì)者指定和命名,例如可命名為BCF格式(Batch Compression Format),具有文件擴(kuò)展名bcf。圖一的最后一個(gè)步驟,即將各個(gè)已進(jìn)行壓縮或未進(jìn)行壓縮的文件,形成一個(gè)BCF文件包。
H.如果用戶指定的批量文件還沒有全部處理完畢,則系統(tǒng)重復(fù)進(jìn)行上述A到G的過程,直到全部處理完畢。
附注1在本發(fā)明中,為減少操作的復(fù)雜性,也可不將復(fù)合文件列入B組文件類型,從而復(fù)合文件也將采用通用無損編碼進(jìn)行壓縮。此時(shí)的流程框圖將如圖2所示,上述操作步驟中將沒有上述操作步驟D和F。
附注2本發(fā)明中也可不設(shè)定B組文件類型,需要壓縮的文件一律采用通用無損壓縮編碼,如流程框3所示。
本發(fā)明也提供對批量計(jì)算機(jī)文件的解壓縮方法,當(dāng)壓縮流程如圖1所示,則解壓縮流程如圖4所示。在圖4的起始端,由用戶指定待進(jìn)行遍歷性解壓縮的批量文件,其余的操作由采用本發(fā)明的系統(tǒng)自動完成,如下所述A.從上述批量文件中任取一個(gè)文件,檢查它是否具有·bcf擴(kuò)展名。如果不是,則直接作為已解壓文件;如果是,則根據(jù)該文件的控制信息,驗(yàn)證它是否確為bcf文件。如果不是,則亦直接作為已解壓文件;如果是,則進(jìn)入下一步操作B.根據(jù)該bcf文件的文件格式,決定該文件是否為已壓縮文件。如果不是已壓縮文件,則直接作為已解壓文件;如果是已壓縮文件,則進(jìn)入下一步操作C.根據(jù)該bcf文件的文件格式,決定該文件是只包含一種被壓縮數(shù)據(jù)信息類型的簡單文件,或是包含多種被壓縮數(shù)據(jù)信息類型的復(fù)合文件。
D.如果該文件是一個(gè)已被壓縮的簡單文件,系統(tǒng)將自動識別該文件中的數(shù)據(jù)信息類型,并且使用與壓縮編碼相應(yīng)的解壓縮編碼,解壓該文件中數(shù)據(jù)信息。
E.如果該文件是一個(gè)已被壓縮的復(fù)合文件,并且該復(fù)合文件不是完全用同一種壓縮編碼進(jìn)行壓縮的,系統(tǒng)將自動地把該文件拆分為多個(gè)信息單元,每個(gè)單元只包含一種被壓縮數(shù)據(jù)信息類型。
F.識別每個(gè)信息單元的數(shù)據(jù)信息類型,并且使用與壓縮編碼相應(yīng)的解壓編碼解壓每個(gè)信息單元,形成已解壓文件。
G.如果上述批量文件還未全部完成上述處理,系統(tǒng)將自動重復(fù)上面A到F的操作,直到全部文件處理完畢。
附注3如果本系統(tǒng)在進(jìn)行壓縮操作時(shí),是按附注1進(jìn)行的,即復(fù)合文件是采用通用無損編碼進(jìn)行壓縮的,則此時(shí)對該復(fù)合文件亦直接采用對應(yīng)的解壓編碼,系統(tǒng)不對該復(fù)合文件進(jìn)行信息單元拆分,沒有上述E和F項(xiàng)操作。
附注4如果本系統(tǒng)在進(jìn)行壓縮時(shí),是按附注2進(jìn)行的,即需要壓縮的文件均是采用通用無損編碼進(jìn)行壓縮的,則亦均采用對應(yīng)的解壓縮編碼對之解壓。
權(quán)利要求
1.通過計(jì)算機(jī)系統(tǒng)對計(jì)算機(jī)文件自動進(jìn)行遍歷性壓縮的方法,包含下列操作(1).在系統(tǒng)中設(shè)定下述兩組文件類型A.A組文件類型,即不需要進(jìn)行壓縮的文件類型。它們可以是已進(jìn)行壓縮的文件類型,也可以是不宜進(jìn)行壓縮的文件類型。這些文件類型可僅用文件擴(kuò)展名列表來表示。B.B組文件類型,即需要用特定的壓縮算法進(jìn)行壓縮的文件類型。這些文件類型的文件格式需是已知的,并且它們可以采用比系統(tǒng)設(shè)定的通用無損編碼更適宜的有損或無損編碼。這些文件類型需由兩個(gè)列表來表示一個(gè)是文件擴(kuò)展名列表;一個(gè)是與其相對應(yīng)的文件控制信息列表。(2).對于任意一個(gè)待進(jìn)行遍歷性壓縮處理的計(jì)算機(jī)文件,按下述操作驗(yàn)證它是否屬于系統(tǒng)設(shè)定的兩組文件類型A.驗(yàn)證它是否屬于A組文件類型,亦即它是否需進(jìn)行壓縮的文件。為此系統(tǒng)需驗(yàn)證該文件的文件擴(kuò)展名是否包括在A組文件的文件擴(kuò)展名列表中。B.驗(yàn)證它是否屬于B組文件類型,亦即它是否需用特定的算法進(jìn)行壓縮的文件類型。此時(shí)系統(tǒng)將首先驗(yàn)證該文件的擴(kuò)展名是否列在B組文件的文件擴(kuò)展名列表中。如果是,系統(tǒng)將接著驗(yàn)證該文件的控制信息是否與B組文件控制信息列表中的相應(yīng)控制信息正好相符。如果上述兩個(gè)驗(yàn)證都是肯定的,則該文件屬于B組文件類型;如果有任一驗(yàn)證是否定的,則該文件不屬于B組文件類型;(3).根據(jù)上述驗(yàn)證結(jié)果,采取下述壓縮操作A.如果該文件屬于A組文件類型,則不予壓縮。B.如果該文件不屬于A組文件類型,也不屬于B組文件類型,則采用系統(tǒng)預(yù)設(shè)的通用無損壓縮編碼對之壓縮。C.如果該文件屬于B組文件類型,并且該文件只包含一種數(shù)據(jù)信息類型,則根據(jù)該文件的數(shù)據(jù)信息類型,采用適宜的無損或有損編碼對之壓縮。D.如果該文件屬于B組文件類型,并且該文件包含多種數(shù)據(jù)信息類型,則首先將該文件拆分為多個(gè)信息單元,每個(gè)單元只包含一種數(shù)據(jù)信息類型,然后根據(jù)各個(gè)信息單元的數(shù)據(jù)信息類型,分別采用適宜的無損或有損編碼對之壓縮。
2.權(quán)利要求1的方法,在計(jì)算機(jī)軟件、硬件或軟、硬件相結(jié)合中的使用,或在具有相應(yīng)計(jì)算機(jī)功能的其它裝置中的使用。
3.權(quán)利要求1的方法,作為獨(dú)立的信息壓縮工具使用,或在任何應(yīng)用系統(tǒng)中的使用。
4.通過計(jì)算機(jī)系統(tǒng)對計(jì)算機(jī)文件自動進(jìn)行遍歷性壓縮的方法,包括下列操作(1).在系統(tǒng)中設(shè)定下述兩組文件類型A.A組文件類型,即不需要進(jìn)行壓縮的文件類型。它們可以是已進(jìn)行壓縮的文件類型,也可以是不宜進(jìn)行壓縮的文件類型。這些文件類型可僅用文件擴(kuò)展名列表來表示。B.B組文件類型,即需要用特定的壓縮算法進(jìn)行壓縮的文件類型。這些文件類型的文件格式需是已知的,并且它們可以采用比系統(tǒng)設(shè)定的通用無損編碼更適宜的有損或無損編碼。這些文件類型需由兩個(gè)列表來表示一個(gè)是文件擴(kuò)展名列表;一個(gè)是與其相對應(yīng)的文件控制信息列表。(2).對于任意一個(gè)待進(jìn)行遍歷性壓縮處理的計(jì)算機(jī)文件,按下述操作驗(yàn)證它是否屬于系統(tǒng)設(shè)定的兩組文件類型A.驗(yàn)證它是否屬于A組文件類型,亦即它是否需進(jìn)行壓縮的文件。為此系統(tǒng)需驗(yàn)證該文件的文件擴(kuò)展名是否包括在A組文件的文件擴(kuò)展名列表中。B.驗(yàn)證它是否屬于B組文件類型,亦即它是否需用特定的算法進(jìn)行壓縮的文件類型。此時(shí)系統(tǒng)將首先驗(yàn)證該文件的擴(kuò)展名是否列在B組文件的文件擴(kuò)展名列表中。如果是,系統(tǒng)將接著驗(yàn)證該文件的控制信息是否與B組文件控制信息列表中的相應(yīng)控制信息正好相符。如果上述兩個(gè)驗(yàn)證都是肯定的,則該文件屬于B組文件類型;如果有任一驗(yàn)證是否定的,則該文件不屬于B組文件類型;(3).根據(jù)上述驗(yàn)證結(jié)果,采取下述壓縮操作A.如果該文件屬于A組文件類型,則不予壓縮。B.如果該文件不屬于A組文件類型,也不屬于B組文件類型,則采用系統(tǒng)預(yù)設(shè)的通用無損壓縮編碼對之壓縮。C.如果該文件屬于B組文件類型,并且該文件只包含一種數(shù)據(jù)信息類型,則根據(jù)該文件的數(shù)據(jù)信息類型,采用適宜的無損或有損編碼對之壓縮。
5.根據(jù)權(quán)利要求4的方法,在計(jì)算機(jī)軟件、硬件或軟、硬件相結(jié)合中的使用,或在具有相應(yīng)計(jì)算機(jī)功能的其它裝置中的使用。
6.權(quán)利要求4的方法,作為獨(dú)立的信息壓縮工具使用,或在任何應(yīng)用系統(tǒng)中的使用。
7.通過計(jì)算機(jī)系統(tǒng)對計(jì)算機(jī)文件自動進(jìn)行遍歷性壓縮的方法,包括下列操作(1).在系統(tǒng)中設(shè)定A組文件類型,即不需要進(jìn)行壓縮的文件類型。它們可以是已進(jìn)行壓縮的文件類型,也可以是不宜進(jìn)行壓縮的文件類型。這些文件類型可僅用文件擴(kuò)展名列表來表示。(2).對于任意一個(gè)待進(jìn)行遍歷性壓縮處理的計(jì)算機(jī)文件,驗(yàn)證它是否屬于A組文件類型,亦即它是否需進(jìn)行壓縮的文件。為此系統(tǒng)需驗(yàn)證該文件的文件擴(kuò)展名是否包括在A組文件的文件擴(kuò)展名列表中。(3).根據(jù)上述驗(yàn)證的結(jié)果,采取下述壓縮操作A.如果該文件屬于A組文件類型,則不予壓縮。B.如果該文件不屬于A組文件類型,則采用系統(tǒng)預(yù)設(shè)的通用無損壓縮編碼對之壓縮。
8.根據(jù)權(quán)利要求7的方法,在計(jì)算機(jī)軟件、硬件或軟、硬件相結(jié)合中的使用,或在具有相應(yīng)計(jì)算機(jī)功能的其它裝置中的使用。
9.權(quán)利要求7的方法,作為獨(dú)立的信息壓縮工具使用,或在任何應(yīng)用系統(tǒng)中的使用。
10.通過計(jì)算機(jī)系統(tǒng)對于計(jì)算機(jī)文件自動進(jìn)行遍歷性解壓縮的方法,當(dāng)按上述權(quán)利要求1、權(quán)利要求4或權(quán)利要求7的方法進(jìn)行遍歷性壓縮操作的計(jì)算機(jī)文件具有某個(gè)文件擴(kuò)展名,例如bcf時(shí),包含下列操作(1).對于任意一個(gè)待進(jìn)行遍歷性解壓縮處理的計(jì)算機(jī)文件,根據(jù)該文件的控制信息,驗(yàn)證該文件是否為bcf文件,并驗(yàn)證它是否為已壓縮文件;(2).如果該文件不是bcf文件或不是已壓縮文件,則不予解壓操作;(3).如果該文件是bcf文件,并且是已壓縮文件,則根據(jù)該文件的控制信息,決定該文件是否僅包含一種壓縮編碼。如果是,則采用相應(yīng)的解壓編碼解壓該文件。如果不是,則將其拆分為多個(gè)信息單元,每個(gè)單元只包含一種壓縮編碼,分別采用相應(yīng)的解壓縮編碼,對之解壓。
11.權(quán)利要求7的方法,在計(jì)算機(jī)軟件、硬件或軟、硬件相結(jié)合中的使用,或在具有相應(yīng)計(jì)算機(jī)功能的其它裝置中的使用。
12.權(quán)利要求7的方法,作為獨(dú)立的信息壓縮工具使用,或在任何應(yīng)用系統(tǒng)中的使用。
全文摘要
對計(jì)算機(jī)文件自動進(jìn)行遍歷性壓縮和解壓縮的方法。按照該方法,可對任意一個(gè)或一批計(jì)算機(jī)文件,自動進(jìn)行高效的遍歷性壓縮處理對不需要壓縮的文件不予壓縮,對需要壓縮的文件,自動采用適宜的有損或無損編碼。本發(fā)明也可用于對任意一個(gè)或一批文件自動進(jìn)行遍歷性解壓操作。
文檔編號G06F17/00GK1584875SQ20041004601
公開日2005年2月23日 申請日期2004年6月1日 優(yōu)先權(quán)日2004年6月1日
發(fā)明者王金波 申請人:北京九州計(jì)算機(jī)網(wǎng)絡(luò)有限公司