專利名稱:基于文件系統(tǒng)的文件壓縮方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信領(lǐng)域,具體地,涉及基于文件系統(tǒng)的文件 壓縮方法及裝置。
背景技術(shù):
隨著計(jì)算機(jī)系統(tǒng)的應(yīng)用越來越廣泛,計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)存儲(chǔ) 和數(shù)據(jù)管理已經(jīng)成為降低計(jì)算機(jī)系統(tǒng)成本的重要因素之一。為了降 低系統(tǒng)數(shù)據(jù)或文件占用的存儲(chǔ)空間,需要進(jìn)行數(shù)據(jù)壓縮。數(shù)據(jù)的壓 縮效果與壓縮算法及壓縮方式相關(guān)。
對(duì)于 一般文件系統(tǒng)本身而言,都會(huì)占用存儲(chǔ)設(shè)備的 一定空間,
而文件系統(tǒng)中的泰:據(jù)或文件占用大部分空間。對(duì)于不同的文件系統(tǒng), 其占存儲(chǔ)空間的比例會(huì)有所差異,這與文件系統(tǒng)的實(shí)現(xiàn)有關(guān)。另外, 文件系統(tǒng)一4殳都支持不同的壓縮算法,比如Linux系統(tǒng)主流文件系 統(tǒng)支持的壓縮算法有Jffs2、 Squashfs、 Cramfs等,內(nèi)部采用的壓縮 算法有zma、 gzip、 lzh等,不同的壓縮算法壓縮效果不同。
對(duì)于大多數(shù)嵌入式設(shè)備上文件系統(tǒng)而言,存在存儲(chǔ)空間有限的 問題,如果存儲(chǔ)文件較多,則對(duì)各文件分別壓縮后,可能仍會(huì)存在 存儲(chǔ)空間無法存儲(chǔ)壓縮后的所有文件的狀況,這是因?yàn)?,?dāng)存在較 多的文件系統(tǒng)時(shí),需要對(duì)文件系統(tǒng)內(nèi)的每個(gè)文件進(jìn)行壓縮,在此期 間,壓縮過程要開辟額外空間凄t據(jù),當(dāng)文件舉交多時(shí),壓縮算法本身開銷所占額外空間數(shù)據(jù)也比較多,這樣,壓縮算法的效果就會(huì)受到影響,進(jìn)而造成文件所占存儲(chǔ)設(shè)備空間增大。
針對(duì)上述問題,可以通過增加存儲(chǔ)設(shè)備來擴(kuò)大存儲(chǔ)空間來解決該問題,但是該方法會(huì)增加成本。因此,需要一種能夠因?yàn)榇鎯?chǔ)空間受限而無法有效地存々者壓縮文件的問題。
發(fā)明內(nèi)容
考慮到相關(guān)技術(shù)中存在的對(duì)文件系統(tǒng)中的單個(gè)文件進(jìn)行壓縮時(shí)占用較大的存儲(chǔ)設(shè)備空間的問題而提出本發(fā)明,為此,本發(fā)明旨在4是供一種改進(jìn)的基于文件系統(tǒng)的文件壓縮方案,以解決上述問題。
為達(dá)到上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于文4牛系鄉(xiāng)克的文4牛壓縮方法。
才艮據(jù)本發(fā)明的基于文件系統(tǒng)的文件壓縮方法包括在文件系統(tǒng)中,獲取待壓縮的多個(gè)文件,將多個(gè)文件合成作為合成文件;生成文件頭,其中,文件頭中包含多個(gè)文件的各自的文件大小信息;對(duì)文件頭連同合成文件進(jìn)行壓縮,得到壓縮文件。
優(yōu)選地,在進(jìn)行壓縮之前,該方法還包括對(duì)合成文件進(jìn)行循環(huán)冗余校驗(yàn),并在文件頭中包含得到的循環(huán)冗余校驗(yàn)數(shù)據(jù)。
優(yōu)選地,在進(jìn)4于壓縮之后,該方法還包4舌解壓縮處理,解壓縮處理包括乂人文件系統(tǒng)中獲取壓縮文件,將壓縮文件解壓縮到系統(tǒng)內(nèi)存,得到包括合成文件和文件頭的解壓縮文件;對(duì)解壓縮得到的合成文件進(jìn)行循環(huán)冗余校驗(yàn),得到循環(huán)冗余校驗(yàn)結(jié)果;將循環(huán)冗余校驗(yàn)結(jié)果與文件頭中的循環(huán)冗余校驗(yàn)數(shù)據(jù)進(jìn)行比較,如果二者一致,則根據(jù)文件頭中的文件大小信息,從合成文件中分解出多個(gè)文件。優(yōu)選地,在分解出多個(gè)文件之后,該方法還包4舌將合成文件刪除。
優(yōu)選地,上述文件頭中還包含多個(gè)文件的各自的文件名信息。
才艮據(jù)本發(fā)明的另 一個(gè)方面,提供了 一種基于文件系統(tǒng)的文件壓
縮裝置。
根據(jù)本發(fā)明的基于文件系統(tǒng)的文件壓縮裝置包括合成器,用 于獲取文件系統(tǒng)中待壓縮的多個(gè)文件,并將多個(gè)文件合成作為合成 文件;生成器,用于生成文件頭,其中,文件頭中包含多個(gè)文件的 文件大小信息;壓縮器,用于對(duì)合成文件和文件頭進(jìn)行壓縮處理, 得到壓縮文件。
優(yōu)選地,該裝置還包括解壓器,用于從文件系統(tǒng)中獲取壓縮 文件,并將壓縮文件解壓縮到系統(tǒng)內(nèi)存,得到合成文件和文件頭; 讀取器,用于讀取文件頭中的文件大小信息;分解器,用于根據(jù)文 件大小信息從合成文件中分解出多個(gè)文件。
優(yōu)選地,該裝置還包括第一才交-瞼器,用于對(duì)獲取單元生成的 合成文件進(jìn)行循環(huán)冗余校驗(yàn),并輸出循環(huán)冗余校驗(yàn)數(shù)據(jù);其中,生 成器還用于獲取第一校驗(yàn)器生成的循環(huán)冗余校驗(yàn)數(shù)據(jù),并在生成的 文件頭中包含循環(huán)冗余校驗(yàn)數(shù)據(jù)。
優(yōu)選地,該裝置還包括解壓器,用于從文件系統(tǒng)中獲取壓縮 文件,并將壓縮文件解壓縮到系統(tǒng)內(nèi)存,得到合成文件和文件頭; 第二校驗(yàn)器,用于對(duì)解壓器解壓縮得到的合成文件進(jìn)行循環(huán)冗余校
驗(yàn),得到循環(huán)冗余校驗(yàn)結(jié)果;讀取器,用于讀取文件頭中的循環(huán)冗 余校驗(yàn)數(shù)據(jù)、文件大小信息;比較器,用于將循環(huán)冗余校驗(yàn)結(jié)果和 循環(huán)冗余校驗(yàn)數(shù)據(jù)進(jìn)行比較,并輸出比較結(jié)果;分解器,用于根據(jù)
7文件大小信息從合成文件中分解出多個(gè)文件;調(diào)度器,用于根據(jù)比 較器輸出的比較結(jié)果,對(duì)分解器進(jìn)行調(diào)度。
通過本發(fā)明,將多個(gè)單獨(dú)文件合并成一個(gè)合成文件進(jìn)行壓縮, 相比于現(xiàn)有技術(shù),可以提高壓縮效率,即,改善壓縮效果,可以進(jìn) 一步減小對(duì)設(shè)備存儲(chǔ)空間的占用率,無需通過增加存儲(chǔ)設(shè)備即可解 決存儲(chǔ)設(shè)備空間不足以存儲(chǔ)各壓縮文件的問題。
本發(fā)明的其它特4正和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部 分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā) 明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附 圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖用來4是供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成i兌明書的一部 分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的 限制。在附圖中
圖1是根據(jù)相關(guān)技術(shù)的文件壓縮處理的示意圖2是根據(jù)本發(fā)明實(shí)施例的文件壓縮處理的示意圖3是根據(jù)本發(fā)明實(shí)施例的基于文件系統(tǒng)的文件壓縮裝置的結(jié) 構(gòu)框圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于文件系統(tǒng)的文件壓縮裝置 的結(jié)構(gòu)框圖5是根據(jù)本發(fā)明實(shí)施例的基于文件系統(tǒng)的文件壓縮方法的流 程圖;圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于文件系統(tǒng)的文件壓縮方法 的流程圖。
具體實(shí)施例方式
圖1給出了相關(guān)技術(shù)中文件系統(tǒng)中的文件壓縮處理的示意圖,
如圖1所示,各個(gè)文件:故單獨(dú)壓縮,存在各文件以及大小為
filel(300k) , file2(1100k) , file3(150k) , file4(500k) , file5(90k), file6(150k), file7(1400k), file8(360k)。 4艮i殳采用一般壓縮方法,以 lzma壓縮算法來壓縮各個(gè)文件,則上述各文件壓縮后的大小為 file2(300k/l極), file2(1100k/500k), file3(150k/98k), file4(500k/350k), file5(90k/40k), file6(150k/90k), file7(1400/850k), file8(360k/200k)。其中,lk表示1024字節(jié)凄文才居。
通過以上描述可以看出,在相關(guān)技術(shù)中,經(jīng)過壓縮之后,存儲(chǔ) 這些文件所 占儲(chǔ)存 i殳備的 空 間 為 140+500+98+350+40+90+850+200=2268k。
在本發(fā)明實(shí)施例沖,為了進(jìn)一步節(jié)約存儲(chǔ)空間,采用一種可以 提高系統(tǒng)數(shù)據(jù)/文件的壓縮效率或壓縮效果的方案。具體地,將多個(gè) 文件合成為一個(gè)大文件,對(duì)該合成的大文件進(jìn)行壓縮,相比于對(duì)分 散的各個(gè)文件分別進(jìn)行壓縮的做法,可以改善壓縮效果,這也是由 壓縮處理本身的特點(diǎn)所決定的。為了便于后續(xù)的解壓縮處理,在實(shí) 施壓縮處理時(shí),還可以單獨(dú)i殳置一文件頭,并在該文件頭中包含i者 如文件大小信息(便于后續(xù)正確的解壓縮得到各個(gè)文件)、對(duì)合成文 件的循環(huán)冗余校驗(yàn)(CRC校驗(yàn),便于后續(xù)驗(yàn)證數(shù)據(jù)是否受損)、以 及文件名信息(便于后續(xù)的正確解壓縮)等,如上所述,該文件頭 的設(shè)置是為了便于后續(xù)的解壓縮,因此,本發(fā)明不限于此,可以通 過多種合適的途徑或手段來實(shí)現(xiàn),在此不再一一列舉。以下進(jìn)一步結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理 解,此處所描述的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于 限定本發(fā)明。如果不沖突,本發(fā)明實(shí)施例及實(shí)施例中的特征可以相 互組合。
裝置實(shí)施例
根據(jù)本發(fā)明實(shí)施例,首先提供了 一種基于文件系統(tǒng)的壓縮裝置,
在下文中"f是到的本發(fā)明實(shí)施例的文件系統(tǒng)可以是諸如Linux系統(tǒng)的 嵌入式系統(tǒng)的文件系統(tǒng),也可以是其他系統(tǒng)的文件系統(tǒng),本發(fā)明對(duì) 此沒有限制。
圖3給出了該裝置的結(jié)構(gòu)框圖,如圖3所示,該裝置包括合 成器l、生成器3、壓縮器5,上述三個(gè)器件可以理解為用于實(shí)現(xiàn)壓 縮功能的壓縮部;解壓器2、讀取器4、分解器6,該三個(gè)器件可以 理解為用于實(shí)J見解壓縮功能的解壓縮部。以下具體描述上述各個(gè)部 4牛的細(xì)節(jié)。
合成器1用于獲耳又文件系統(tǒng)中待壓縮的多個(gè)文件,并將多個(gè)文 件合成作為合成文件,例如,圖2的中間列所示出的合成文件;這 里的合成操作可以是文件拼接操作,也可以是其它更復(fù)雜一些的合 成才乘作,只要可以達(dá)到將多個(gè)文件合成為一個(gè)文件的目的即可,本 發(fā)明對(duì)此沒有限制,因此,該合成器可以用任意合適的文件合成算 法或禾呈序來實(shí)現(xiàn)。
生成器3用于生成文件頭,如上所述,在本發(fā)明實(shí)施例中,文 件頭中可以包含各個(gè)文件的文件大小信息,優(yōu)選地,還可以包含各 個(gè)文件的文件名稱信息。合成文件頭與合成文件的位置關(guān)系可以參 照?qǐng)D2》會(huì)出的示意圖來理解。一4殳地,文件頭的大小不超過lk,其 所占的存儲(chǔ)空間可以忽略。需要說明的是,上述文件頭和合成文件也可以看作一個(gè)整體來理解,這不影響本發(fā)明的本質(zhì),例如,在圖
2中,將文件頭(合成文件頭)和合成文件作為一個(gè)合成文件示出。
壓縮器5,連接至合成器1和生成器3,用于對(duì)合成器l合成 的合成文件和生成器3生成的文件頭進(jìn)行壓縮處理,得到壓縮文件, 壓縮文件可以;改置在文〗牛系統(tǒng)中,生成系統(tǒng)固4牛。以圖2的示意圖 為例,經(jīng)過壓縮后,得到的文件為Filetotal。
仍以圖 2所示的過程為例,合成文件的大小為 300+1100+150+500+90+150+1400+360 = 4050k。如果對(duì)合成文4牛采 用lzma壓縮算法,則壓縮后得到的Fiktotal文件的大小約為1550k。
通過上述的合成器l、生成器3、壓縮器5的操/f乍,即可實(shí)現(xiàn)將 多個(gè)單獨(dú)文件作為一個(gè)大文件進(jìn)4亍整體壓縮,可以獲得l交好的文件 壓縮步文果。相應(yīng);也,在進(jìn)4亍了文4牛壓縮之后,在系鄉(xiāng)充啟動(dòng)后,可能 需要使用各類文件,這時(shí)還需要進(jìn)行解壓縮操作,因此,本發(fā)明實(shí) 施例的文件壓縮裝置提供了用于進(jìn)行解壓縮操作的解壓器2、讀取 器4、分解器6。
具體地,解壓器2用于乂人文件系統(tǒng)中獲取壓縮文件,并將壓縮 文件解壓縮到系統(tǒng)內(nèi)存,解壓縮后,將得到合成文件和文件頭;讀 取器4用于讀取文件頭中的文件大小信息;分解器6連接至上述的 解壓器2和讀取器4,用于根據(jù)讀取器4讀取的文件大小信息,從 解壓器2解壓縮得到的合成文件中分解出多個(gè)文件,可以看出,文 件頭中攜帶的文件大小信息,實(shí)際上起到了定位信息的作用,依據(jù) 文件大小信息,可以對(duì)各個(gè)文件進(jìn)行定位,避免誤分解操作。如果 文件頭中還包含文件名稱信息,則可以將解壓后得到的文件根據(jù)文 件名稱信息進(jìn)行進(jìn)一步驗(yàn)證,如果各文件的文件名均匹配,則表示 解壓縮成功,文件完整。
ii在數(shù)據(jù)或文件的壓縮過程中,可能會(huì)對(duì)數(shù)據(jù)或文件造成損壞, 一旦文件受損,則無法進(jìn)行正確的解壓縮操作,也就無法還原得到 壓縮前的文件。為了確認(rèn)文件是否受損,本發(fā)明優(yōu)選實(shí)施例中給出
了 一種采用CRC才交-驗(yàn)的解決方案。
圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的文件壓縮裝置的結(jié)構(gòu)框圖。如 圖4所示,在圖3所示的架構(gòu)的基礎(chǔ)上,該文件壓縮裝置還包括如 下所述的部{牛。
在壓縮部側(cè)還設(shè)置有第一校驗(yàn)器7,連接至合成器1和生成 器3,用于對(duì)合成器1的合成文件進(jìn)行CRC校驗(yàn),并將得到的CRC 校驗(yàn)數(shù)據(jù)輸出到生成器3,這樣,生成器3將在其生成的文件頭中 包含該CRC校-驗(yàn)數(shù)據(jù)。
相應(yīng)地,在解壓部側(cè)的讀取器4除了讀取文件大小信息,還用 于讀取文件頭中的CRC校驗(yàn)數(shù)據(jù);在解壓部側(cè)還設(shè)置有第二校驗(yàn) 器8,連接至解壓器2,用于對(duì)解壓縮得到的合成文件進(jìn)行CRC校 驗(yàn),得到CRC校驗(yàn)結(jié)果;比較器10,連接至讀取器4和第二校驗(yàn) 器8,用于將第二校驗(yàn)器8的CRC校驗(yàn)結(jié)果和讀取器4讀取的CRC 校驗(yàn)數(shù)據(jù)進(jìn)行比較,并輸出比較結(jié)果,即,二者是否一致;調(diào)度器 12,用于根據(jù)比較器IO輸出的比較結(jié)果,對(duì)分解器8進(jìn)行調(diào)度,具 體地,如果比較器10輸出的比較結(jié)果為CRC校驗(yàn)數(shù)據(jù)與CRC校驗(yàn) 結(jié)果一致,則說明數(shù)據(jù)無損,則調(diào)度分解器8進(jìn)行分解操作,否貝'J, 說明數(shù)據(jù)有損壞,則不調(diào)度分解器8進(jìn)行分解,而選擇進(jìn)行其他處 理,比如,數(shù)據(jù)修復(fù)等,這不影響本發(fā)明的本質(zhì),因此,在此不再 贅述。
通過本發(fā)明實(shí)施例提供的技術(shù)方案,可以有效地驗(yàn)證數(shù)據(jù)是否 受損,從而可以保證解壓縮數(shù)據(jù)的完整性和正確性。此外,根據(jù)實(shí) 施的需要,可以對(duì)上述的各個(gè)部件進(jìn)行》務(wù)改,例如,可以將上述的兩個(gè)一交-驗(yàn)器合一i殳置用于實(shí)現(xiàn)CRC 一交3全功能,還可以將4交-驗(yàn)器與比 較器、調(diào)度器合一設(shè)置來綜合實(shí)現(xiàn)各自的功能。對(duì)于CRC校驗(yàn),可 以采用其他可以實(shí)現(xiàn)數(shù)據(jù)完整性驗(yàn)證的校驗(yàn)方法來替換,本發(fā)明不 再--歹'J舉。
方法實(shí)施例
才艮據(jù)本發(fā)明實(shí)施例,還才是供了 一種基于文件系統(tǒng)的文件壓縮方 法,優(yōu)選地,該方法可以^吏用上述裝置實(shí)施例纟合出的裝置來實(shí)現(xiàn)。 其中,圖5是該壓縮方法的流程圖,圖6是該壓縮方法的優(yōu)選實(shí)現(xiàn) 方式的流^i圖,需要i兌明的是,在以下的圖5和圖6中示出的步艱i 可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。
首先,如圖5所示,才艮據(jù)本發(fā)明實(shí)施例的文件壓縮方法大致可 以包括如下的合成步驟、生成步驟、壓縮步艱《,該各步駛《是針對(duì)文 件系統(tǒng)來執(zhí)行的。需要說明的是,在下文中對(duì)各步驟的描述順序僅 4義是為了 l更于理解,而不用于對(duì)本發(fā)明實(shí)施例的實(shí)現(xiàn)進(jìn)4于任何限制。
具體地,在文件系統(tǒng)中,獲取《寺壓縮的多個(gè)文件(即,多個(gè)原 始數(shù)據(jù)文件),將多個(gè)文件整體作為合成文件,如上所述,這里的合 成可以是拼4妄或其他合成操作(合成步驟);生成文件頭,該文件頭 中包含多個(gè)文件的各自的文件大小信息,并且優(yōu)選地還包括文件名 信息(生成步驟);接下來,對(duì)文件頭連同所述合成文件進(jìn)行壓縮, 得到壓縮文件,例如,圖2所示的Filetotal (壓縮步驟),如上所述, 得到的文件大小約為1550k。
為了可以在解壓縮過程中—驗(yàn)證數(shù)據(jù)的完整性,如圖6所示,可 以在壓縮過程中,對(duì)合成文件首先進(jìn)4亍CRC 4交-驗(yàn),并將得到的CRC 校驗(yàn)數(shù)據(jù)包含在文件頭中(CRC校驗(yàn)步驟),如上所述,合成文件 頭的大d、一般不會(huì)超過lk字節(jié)。之后,將壓縮后的Filetotal文件》文入文件系統(tǒng),構(gòu)建生成系統(tǒng) 固件。當(dāng)將壓縮后的文件放入文件系統(tǒng)時(shí),文件系統(tǒng)會(huì)將該文件默 認(rèn)為 一力殳文件,再次對(duì)其進(jìn)4亍壓縮,由于Filetotal文件已經(jīng)4皮壓縮, 因此,文件系統(tǒng)的二次壓縮會(huì)實(shí)際占用略大的空間,例如,可能達(dá) 到1600k。即4吏是占用了 1600k,與相關(guān)才支術(shù)中的壓縮方案相比,也 可以節(jié)約2268k- 16001^668k的存儲(chǔ)空間,節(jié)約了大約29%。
基于上述的壓縮處理,在系統(tǒng)啟動(dòng)后需要各個(gè)文件時(shí),可以進(jìn) 4亍解壓縮才喿作,具體可以進(jìn)^f于如圖6所示的如下解壓縮處理,解壓 縮處理可以4十乂于系統(tǒng)內(nèi)存來進(jìn)4亍。
系統(tǒng)啟動(dòng)后,首先獲取壓縮文件,即,F(xiàn)iletotal文件,將其解 壓縮到系統(tǒng)內(nèi)存,解壓縮后將得到合成文件和文件頭(解壓縮步驟);
優(yōu)選地,對(duì)解壓縮得到的合成文件進(jìn)行CRC校驗(yàn)(CRC校驗(yàn) 步驟),將CRC校驗(yàn)結(jié)果與文件頭中包含的CRC校驗(yàn)數(shù)據(jù)進(jìn)行比較 (比較步驟),以驗(yàn)證數(shù)據(jù)是否受損。
如果比較解壓縮得到CRC校驗(yàn)結(jié)果與文件頭中的CRC校驗(yàn)數(shù) 據(jù)一致,則證明數(shù)據(jù)沒有受損,則根據(jù)文件頭中的文件大小信息, 將解壓縮后的合成文件在系統(tǒng)內(nèi)存中分解出filel、 file2、 file3、 file4、 file5、 file6、 file7、 file8。之后,為了節(jié)約內(nèi)存,優(yōu)選地,可以刪除 原有的Filetotal文件。需要i兌明的是,如果在壓縮過程中沒有進(jìn)行 CRC校驗(yàn),則在解壓縮過程中,如圖5所示,只需進(jìn)行解壓縮步驟 和分解步驟即可,上述的CRC校驗(yàn)步驟和比較步驟則無需執(zhí)行。
通過以上處理,可以將文件先合成壓縮后存儲(chǔ)到存儲(chǔ)設(shè)備,而 后將整體凄t據(jù)文件還原到內(nèi)存。由于i殳備在啟動(dòng)后對(duì)于凄t據(jù)在內(nèi)部 存儲(chǔ)設(shè)備或外部存儲(chǔ)設(shè)備的使用方式相同,而整個(gè)數(shù)據(jù)壓縮還原過 程通過CRC校驗(yàn)來保證數(shù)據(jù)的無損,因此,可以節(jié)約系統(tǒng)文件對(duì)外存儲(chǔ)設(shè)備空間的占用率。以上是以lzma壓縮算法為例來進(jìn)行說明 的,在實(shí)際應(yīng)用中,采用其他不同壓縮算法(例如,gzip等)使用 本發(fā)明實(shí)施例提供的技術(shù)方案進(jìn)行文件壓縮測(cè)試,相比于相關(guān)技術(shù), 系統(tǒng)文件(固件)對(duì)存儲(chǔ)設(shè)備所占空間的比例都下降了 25% -35% 左右,隨著合成文件增多,節(jié)省的空間比例也越大。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明, 對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在 本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等, 均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種基于文件系統(tǒng)的文件壓縮方法,其特征在于,包括在文件系統(tǒng)中,獲取待壓縮的多個(gè)文件,將所述多個(gè)文件合成作為合成文件;生成文件頭,其中,所述文件頭中包含所述多個(gè)文件的各自的文件大小信息;對(duì)所述文件頭連同所述合成文件進(jìn)行壓縮,得到壓縮文件。
2. 才艮據(jù)一又利要求1所述的方法,其特征在于,在進(jìn)4亍壓縮之前, 還包括對(duì)所述合成文件進(jìn)行循環(huán)冗余4交-瞼,并在所述文件頭中包 含得到的循環(huán)冗余校驗(yàn)數(shù)據(jù)。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,在進(jìn)行壓縮之后, 還包i舌解壓縮處理,所述解壓縮處理包4舌/人所述文件系統(tǒng)中獲取所述壓縮文件,將所述壓縮文件解 壓縮到系統(tǒng)內(nèi)存,得到包括所述合成文件和所述文件頭的解壓 縮文件;對(duì)解壓縮得到的所述合成文件進(jìn)行循環(huán)冗余校驗(yàn),得到循 環(huán)冗余4交-驗(yàn)結(jié)果;-瞼數(shù)據(jù)進(jìn)行比較,如果二者一致,則4艮據(jù)所述文件頭中的所述 文件大小信息,從所述合成文件中分解出所述多個(gè)文件。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,在分解出所述多個(gè) 文件之后,還包括將所述合成文件刪除。
5. 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述 文件頭中還包含所述多個(gè)文件的各自的文件名信息。
6. —種基于文件系統(tǒng)的文件壓縮裝置,其特征在于,包括合成器,用于獲取文件系統(tǒng)中待壓縮的多個(gè)文件,并將所 述多個(gè)文件合成作為合成文件;生成器,用于生成文件頭,其中,所述文件頭中包含所述 多個(gè)文件的文件大小信息;壓縮器,用于對(duì)所述合成文件和所述文件頭進(jìn)行壓縮處 理,得到壓縮文件。
7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括解壓器,用于乂人文件系統(tǒng)中獲取所述壓縮文件,并將所述 壓縮文件解壓縮到系統(tǒng)內(nèi)存,得到所述合成文件和所述文件 頭;讀取器,用于讀取所述文件頭中的所述文件大小信息;分解器,用于根據(jù)所述文件大小信息從所述合成文件中分 解出所述多個(gè)文件。
8. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括第一校驗(yàn)器,用于對(duì)所述獲取單元生成的所述合成文件進(jìn) 行循環(huán)冗余4交-驗(yàn),并輸出循環(huán)冗余4交-驗(yàn)凄t據(jù);其中,所述生成器還用于獲取所述第一校驗(yàn)器生成的循環(huán) 冗余校驗(yàn)數(shù)據(jù),并在生成的所述文件頭中包含所述循環(huán)冗余校 驗(yàn)數(shù)據(jù)。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括解壓器,用于從所述文件系統(tǒng)中獲取所述壓縮文件,并將 所述壓縮文件解壓縮到系統(tǒng)內(nèi)存,得到所述合成文件和所述文件頭;第二校驗(yàn)器,用于對(duì)所述解壓器解壓縮得到的所述合成文件進(jìn)行循環(huán)冗余校驗(yàn),得到循環(huán)冗余校驗(yàn)結(jié)果;讀取器,用于讀取所述文件頭中的所述循環(huán)冗余校驗(yàn)數(shù) 據(jù)、文件大小信息;比較器,用于將所述循環(huán)冗余4交-險(xiǎn)結(jié)果和所述循環(huán)冗余校 驗(yàn)數(shù)據(jù)進(jìn)行比較,并輸出比較結(jié)果;分解器,用于根據(jù)所述文件大小信息從所述合成文件中分 解出所述多個(gè)文件;調(diào)度器,用于根據(jù)所述比較器輸出的所述比較結(jié)果,對(duì)所
全文摘要
本發(fā)明公開了一種基于文件系統(tǒng)的文件壓縮方法及裝置,其中,該方法包括在文件系統(tǒng)中,獲取待壓縮的多個(gè)文件,將多個(gè)文件合成作為合成文件;生成文件頭,其中,文件頭中包含多個(gè)文件的各自的文件大小信息;對(duì)文件頭連同合成文件進(jìn)行壓縮,得到壓縮文件。通過本發(fā)明,將多個(gè)單獨(dú)文件合并成一個(gè)合成文件進(jìn)行壓縮,相比于現(xiàn)有技術(shù),可以提高壓縮效率,即,改善壓縮效果,可以進(jìn)一步減小對(duì)設(shè)備存儲(chǔ)空間的占用率,無需通過增加存儲(chǔ)設(shè)備即可解決存儲(chǔ)設(shè)備空間不足以存儲(chǔ)各壓縮文件的問題。
文檔編號(hào)H04L1/00GK101478370SQ20091000524
公開日2009年7月8日 申請(qǐng)日期2009年1月20日 優(yōu)先權(quán)日2009年1月20日
發(fā)明者唐建國(guó), 廖俊平, 林科金 申請(qǐng)人:中興通訊股份有限公司