欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種順序壓縮/解壓縮數(shù)據(jù)的方法及裝置的制作方法

文檔序號:7537838閱讀:263來源:國知局
專利名稱:一種順序壓縮/解壓縮數(shù)據(jù)的方法及裝置的制作方法
技術領域
本發(fā)明涉及一種壓縮/解壓縮數(shù)據(jù)的方法和裝置,尤其涉及一種順序壓縮/解壓縮數(shù)據(jù)的方法及裝置。
目前,順序壓縮/解壓縮數(shù)據(jù)是一種常用的對數(shù)據(jù)進行壓縮/解壓縮的方法。該方法是用在壓縮過程中已經(jīng)處理過的數(shù)據(jù)作為參考來壓縮/解壓縮后面的數(shù)據(jù)從而減少冗余,典型的順序壓縮方案有LZ77和Zlib。Zlib是基于Huffman編碼和LZ77的一種順序壓縮方案。
圖1是一種現(xiàn)有的順序壓縮/解壓縮數(shù)據(jù)的裝置的結構示意框圖。如圖1所示,該裝置包括順序編碼器120,用于將輸入的N個數(shù)據(jù)段作為一個整體一起進行順序編碼壓縮;存儲器130,用于保存壓縮好的數(shù)據(jù);順序解碼器140,用于對壓縮后的數(shù)據(jù)進行順序解碼,并利用數(shù)據(jù)性質或者一個索引表來將N個數(shù)據(jù)段分離出來。這樣的壓縮方法能獲得最大的壓縮效率,數(shù)據(jù)段之間的冗余度可以被節(jié)約。特別是如果該N個數(shù)據(jù)段具有相同或相似的數(shù)據(jù)結構,則壓縮后的數(shù)據(jù)的冗余會大大減少。
然而,在圖1所示的裝置中,想要對壓縮后的每個數(shù)據(jù)段進行隨機存取是不可能的。由于在圖1所示的壓縮過程中,后一個數(shù)據(jù)段的壓縮,如數(shù)據(jù)段K(K為1-N中的任一個數(shù)),要依賴于前面所有已壓縮的數(shù)據(jù)段,即數(shù)據(jù)段1-K。因此,在進行解壓縮時,必須首先對該數(shù)據(jù)段(數(shù)據(jù)段K)前的所有被壓縮的數(shù)據(jù)段(數(shù)據(jù)段1-K)進行解壓縮,然后,該壓縮后的數(shù)據(jù)段(數(shù)據(jù)段K)才能被解壓縮出來。一個極端的例子是,為了從壓縮后的數(shù)據(jù)中獲得最后的一個數(shù)據(jù)段(數(shù)據(jù)段N),在數(shù)據(jù)段N之前所有被壓縮的數(shù)據(jù)段都必須被依次解壓縮并被一一拋棄,一直解壓縮到最后才能獲得數(shù)據(jù)段N。
圖2是另一種現(xiàn)有的順序壓縮/解壓縮數(shù)據(jù)的裝置的結構示意框圖。與上述壓縮方法不同的是,數(shù)據(jù)段彼此之間獨立地被壓縮/解壓縮。如圖2所示,該裝置包括順序編碼器120,用于對數(shù)據(jù)段K獨立地進行順序壓縮,該數(shù)據(jù)段K為1-N個數(shù)據(jù)段中的任意一個;存儲器130,用于保存壓縮好的數(shù)據(jù)段K;順序解碼器140,用于對壓縮后的數(shù)據(jù)段K進行解壓縮還原出數(shù)據(jù)段K。在上述壓縮過程中,該N個數(shù)據(jù)段被分別壓縮/解壓縮,每一個數(shù)據(jù)段的壓縮/解壓縮過程是相互獨立的,后一數(shù)據(jù)段的順序壓縮/解壓縮并不依賴于前面已壓縮的數(shù)據(jù)段。如要通過解壓縮來獲得數(shù)據(jù)段K,則只要直接從存儲器130中找到壓縮后的數(shù)據(jù)段K即可進行順序解壓縮,而不需要對其前面壓縮的數(shù)據(jù)段進行解壓縮。由于本裝置是獨立地壓縮數(shù)據(jù)段,因此也就獲得了對這些數(shù)據(jù)段進行隨機存取的途徑。然而,也正因為各個數(shù)據(jù)段是被獨立壓縮的,因而它們之間的冗余不能被利用,從而導致整個數(shù)據(jù)的壓縮率很低。
因此,需要一種新的順序壓縮/解壓縮數(shù)據(jù)的方法及裝置,它既能有效對數(shù)據(jù)進行壓縮也能夠隨機存取數(shù)據(jù)。

發(fā)明內容
本發(fā)明的目的之一是解決現(xiàn)有的順序壓縮/解壓縮方案(scheme)的缺陷,提供一種新的順序壓縮/解壓縮數(shù)據(jù)的方法及裝置,從而能有效對數(shù)據(jù)進行順序壓縮也能夠隨機存取數(shù)據(jù)。
本發(fā)明提供一種順序壓縮一個數(shù)據(jù)段的方法,該數(shù)據(jù)段具有一種數(shù)據(jù)結構。首先,獲取多個壓縮參數(shù);然后,根據(jù)所獲得的壓縮參數(shù)對該數(shù)據(jù)段進行順序壓縮,從而得到一個壓縮后的數(shù)據(jù)段。其中該數(shù)據(jù)段可以是通過對數(shù)據(jù)進行預處理來獲得。該壓縮參數(shù)是來自于一個存儲裝置,當然,該壓縮參數(shù)還可通過對具有該數(shù)據(jù)結構的一個模板進行壓縮后得到。對具有該數(shù)據(jù)結構的一個模板進行壓縮后除了得到所述的壓縮參數(shù)外,還得到一個壓縮后的模板。該壓縮后的模板與壓縮后的數(shù)據(jù)段被分別存儲,或者該壓縮后的模板被丟棄。
與之相對應地,本發(fā)明還提供一種順序解壓縮一個壓縮后的數(shù)據(jù)段的方法,該數(shù)據(jù)段具有一種數(shù)據(jù)結構。首先,獲取多個解壓縮參數(shù);然后,根據(jù)所獲得的解壓縮參數(shù)對該壓縮后的數(shù)據(jù)段進行順序解壓縮,從而得到一個解壓縮后的數(shù)據(jù)段。該解壓縮參數(shù)是來自于一個存儲裝置,當然,該解壓縮參數(shù)還可通過對一個壓縮后的模板進行順序解壓縮后得到,該模板具有所述的數(shù)據(jù)結構。對該壓縮后的模板進行順序解壓縮后除了得到所述的解壓縮參數(shù)外,還得到一個解壓縮后的模板。該解壓縮后的模板被丟棄。
本發(fā)明還提供一種順序壓縮一個數(shù)據(jù)段的裝置,該裝置包括一個獲取裝置和一個壓縮裝置,該數(shù)據(jù)段具有一種數(shù)據(jù)結構。該順序壓縮一個數(shù)據(jù)段的裝置還可有選擇地包括一個預處理裝置、一個存儲裝置和一個丟棄裝置。該獲取裝置,用于獲取多個壓縮參數(shù);該壓縮裝置,用于根據(jù)所獲得的壓縮參數(shù),對所述的數(shù)據(jù)段進行順序壓縮,從而得到一個壓縮后的數(shù)據(jù)段。該壓縮裝置,還用于對具有該數(shù)據(jù)結構的一個模板進行順序壓縮,從而得到所述的壓縮參數(shù)和一個壓縮后的模板;該預處理裝置,用于對數(shù)據(jù)進行預處理從而獲得所述的數(shù)據(jù)段;該存儲裝置,用于存儲所述的壓縮參數(shù);該丟棄裝置,用于丟棄所述壓縮后的模板。
與之相對應的,本發(fā)明提供一種順序解壓縮一個壓縮后的數(shù)據(jù)段的裝置,該裝置包括一個獲取裝置和一個解壓縮裝置。該順序解壓縮一個壓縮后的數(shù)據(jù)段的裝置還可有選擇地包括一個存儲裝置和一個丟棄裝置。該獲取裝置,用于獲取多個解壓縮參數(shù);該解壓縮裝置,用于根據(jù)所獲得的解壓縮參數(shù),對壓縮后的數(shù)據(jù)段進行順序解壓縮,從而得到一個解壓縮后的數(shù)據(jù)段,該數(shù)據(jù)段具有一種特定的數(shù)據(jù)結構。該解壓縮裝置還用于對一個壓縮后的模板進行順序解壓縮,從而得到所述的解壓縮參數(shù)和一個解壓縮后的模板,該模板具有所述的數(shù)據(jù)結構;該存儲裝置,用于存儲所述的解壓縮參數(shù);該丟棄裝置,用于丟棄該解壓縮后的模板。
本發(fā)明提供的上述順序壓縮/解壓縮數(shù)據(jù)的方法及其裝置,在對于一個具有特定數(shù)據(jù)結構的數(shù)據(jù)段進行壓縮后,其數(shù)據(jù)結構部分(模板)可被濾出,故可提高數(shù)據(jù)的壓縮比;在對多個具有特定數(shù)據(jù)結構的數(shù)據(jù)段進行分別壓縮后,每一個數(shù)據(jù)段的數(shù)據(jù)結構部分均可被濾出,但可僅保留一個壓縮后的模板,或丟棄所有的壓縮后的模板,故可大大提高數(shù)據(jù)的壓縮比,又能夠對各個數(shù)據(jù)段進行隨機處理。
通過參照結合附圖所進行的如下描述和權利要求,本發(fā)明的其它目的和成就將是顯而易見的,并對本發(fā)明也會有更為全面的理解。


本發(fā)明通過實例的方式,參照附圖進行詳盡的解釋,其中圖1是一種現(xiàn)有的順序壓縮/解壓縮數(shù)據(jù)的裝置的結構示意框圖;
圖2是另一種現(xiàn)有的順序壓縮/解壓縮數(shù)據(jù)的裝置的結構示意框圖;圖3是根據(jù)本發(fā)明的一個實施例的一個順序壓縮一個數(shù)據(jù)段的裝置的結構示意框圖;圖4是根據(jù)本發(fā)明的一個實施例的一個順序壓縮一個數(shù)據(jù)段的流程圖;圖5是根據(jù)本發(fā)明的一個實施例的一個順序解壓縮一個壓縮后的數(shù)據(jù)段的裝置的結構示意框圖;和圖6是根據(jù)本發(fā)明的一個實施例的一個順序解壓縮一個壓縮后的數(shù)據(jù)段的流程示意圖。
在所有的附圖中,相同的參照數(shù)字表示相似或相同的特征和功能。下面參照附圖結合實施例對本發(fā)明進一步說明。
具體實施例方式
圖3是根據(jù)本發(fā)明的一個實施例的一個順序壓縮一個數(shù)據(jù)段的裝置的結構示意框圖,該數(shù)據(jù)段具有一種數(shù)據(jù)結構。裝置300包括一個獲取裝置310和一個壓縮裝置320。裝置300還可包括一個預處理裝置330、一個存儲裝置340和一個丟棄裝置350。
獲取裝置310用于獲取多個壓縮參數(shù),這些壓縮參數(shù)指明了具有該數(shù)據(jù)結構的模板的編碼壓縮信息,包括這個模板的壓縮方式、存儲位置、數(shù)據(jù)結構等信息。該壓縮參數(shù)可從存儲裝置340中獲得。該壓縮參數(shù)對應于壓縮裝置320在壓縮完一個具有該數(shù)據(jù)結構的模板時的內部狀態(tài)。
壓縮裝置320用于根據(jù)所獲得的壓縮參數(shù),對待壓縮的數(shù)據(jù)段進行順序壓縮,從而得到一個壓縮后的數(shù)據(jù)段。該壓縮裝置320還用于對具有該數(shù)據(jù)結構的一個模板進行順序壓縮,從而得到所述的壓縮參數(shù)。待壓縮的數(shù)據(jù)來自于預處理裝置330,當然,亦可來自于其它數(shù)據(jù)源(圖中未顯示)。
預處理裝置330用于對輸入的數(shù)據(jù)進行預處理,從而產(chǎn)生一個符合所述的數(shù)據(jù)結構的數(shù)據(jù)段。該數(shù)據(jù)段是一個動態(tài)數(shù)據(jù),根據(jù)輸入數(shù)據(jù)的不同而變化。例如,XML(eXtensible Markup Language)格式中數(shù)據(jù)庫記錄的排版處理單元(publishing process)就是預處理裝置的一個適合的實例。如果輸入的數(shù)據(jù)是沒有任何內容的空白數(shù)據(jù)(blank data),則預處理裝置330會產(chǎn)生一個具有所述數(shù)據(jù)結構的一個模板。該模板描述了數(shù)據(jù)段的數(shù)據(jù)結構,但不包含任何動態(tài)的內容數(shù)據(jù)。
該預處理裝置330可以根據(jù)不同的情況輸出各種不同類別的數(shù)據(jù)段。舉例來說,可以根據(jù)數(shù)據(jù)庫輸入的不同類型數(shù)據(jù)產(chǎn)生不同的數(shù)據(jù)段,在這種情況下,針對每一種數(shù)據(jù)段,可以相應地產(chǎn)生一個對應的數(shù)據(jù)結構的模板以用于壓縮相應的數(shù)據(jù)段。當然,也可以設計一個通用的模板來供所有類型的數(shù)據(jù)段進行壓縮時使用,但該方案只能提供給一個次最佳性能的壓縮比。
存儲裝置340用于存儲壓縮后的數(shù)據(jù)段和壓縮參數(shù),還可以用于存儲壓縮后的數(shù)據(jù)結構的模板。這個存儲裝置340是一個硬盤,還可以是一個USB(Universal Serial Bus)盤,也可以是緩存等。但是需要指出的是壓縮后的數(shù)據(jù)段和壓縮后的模板需要分別被存儲,比如,可以以不同的文件名存儲。存儲在存儲裝置340的壓縮后的模板是為了在解壓縮該數(shù)據(jù)段時使用。
丟棄裝置350用于將壓縮后的模板丟棄。該壓縮后的模板來自于壓縮裝置320。為了不占據(jù)存儲裝置的太多空間,也可以將壓縮后的模板丟棄。
裝置300的運行過程詳見下面圖4所述。
圖4是根據(jù)本發(fā)明的一個實施例的一個順序壓縮一個數(shù)據(jù)段的流程圖。該數(shù)據(jù)段具有一種數(shù)據(jù)結構。首先,獲取具有該數(shù)據(jù)結構的一個模板(步驟S410)。該模板可通過對不包含任何有效內容的數(shù)據(jù)進行預處理后得到。在該預處理過程中,可在該模板的結尾處加上一個標志,如文件結束標志,該標志用于表明該模板文件的結束位置。
如下所述是一個電視節(jié)目數(shù)據(jù)的數(shù)據(jù)結構<radioshow radioshowID=″″>
<description></description>
<start_time></start_time>
<end_time></end_time>
<party><host></host><participant></participant></party>
</radioshow>
所述的模板的內容為上述數(shù)據(jù)結構。
接著,對該模板進行順序壓縮(步驟S420)。具體來說,先初始化編碼狀態(tài),然后對該模板進行順序壓縮,例如利用Zlib順序壓縮運算法則,從而得到一個壓縮后的模板和多個壓縮參數(shù)。該壓縮參數(shù)可用于壓縮待壓縮的數(shù)據(jù)段。該壓縮參數(shù)指明了該模板的編碼壓縮信息及其在壓縮裝置中的存儲位置,包括該模板的壓縮方式、數(shù)據(jù)結構、Huffman列表等信息。需要說明的是Zlib順序壓縮運算法并不是唯一的壓縮法則,實施者可以根據(jù)自己的需要選擇不同的壓縮算法。
然后,丟棄該壓縮后的模板(步驟S430)。為了不影響整個數(shù)據(jù)的壓縮率和節(jié)約存儲空間,系統(tǒng)可將壓縮后的模板丟棄。由于模板的結尾處具有一個標志,如文件結束標志,當系統(tǒng)讀到該標志后,會自動丟棄這個壓縮的模板。當然,也可以將壓縮后的模板存儲在一個本地存儲裝置的一個特定存儲區(qū)中,以供將來用于解壓縮。特別是在多個具有該數(shù)據(jù)結構的數(shù)據(jù)段分別依次按本發(fā)明的壓縮方式進行壓縮時,可以只保留其中一個壓縮后的模板,丟棄其余的壓縮后的模板。
上述步驟S410-S430是通過對具有該數(shù)據(jù)結構的一個模板進行順序壓縮從而獲取壓縮參數(shù)的過程。該壓縮參數(shù)可被存儲下來,如存儲到一個本地存儲裝置中,以供在對具有同樣/類似數(shù)據(jù)結構的另一個數(shù)據(jù)段進行壓縮時使用。在這種情況下,如果在一個本地存儲裝置中已經(jīng)保存了該壓縮參數(shù),則在對另一個具有同樣數(shù)據(jù)結構的數(shù)據(jù)段進行壓縮時,則可以不進行上述步驟S410-S430,即不需要對一個具有該數(shù)據(jù)結構的模板進行壓縮,而可以直接從該存儲裝置中獲得該壓縮參數(shù)。值得注意的是,在直接從該存儲裝置中獲得該壓縮參數(shù)前,應先初始化編碼狀態(tài),以確保前一個流程結束時的壓縮參數(shù)不會影響本流程。
接下來,獲取一個數(shù)據(jù)段,該數(shù)據(jù)段具有所述的數(shù)據(jù)結構(步驟S440)。該數(shù)據(jù)段是對數(shù)據(jù)進行預處理來獲得,如通過XML(eXtensibleMarkup Language)格式中數(shù)據(jù)庫記錄的排版處理單元(publishingprocess)來獲得一個符合XML格式的數(shù)據(jù)段。當然,該數(shù)據(jù)段亦可來自于其它數(shù)據(jù)源。
下面的例子可以更具體地說明模板和數(shù)據(jù)段之間的關系,例如,經(jīng)過格式預處理后,獲得二個電視節(jié)目數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段1是
<radioshow radioshowID=″new talk show″>
<description>a new TV talk show every Friday</description>
<start_time>7pm</start_time>
<end_time>8pm</end_time>
<party><host>Mr.XYZ</host><participant>Mr.ABC</participant></party>
</radioshow>
數(shù)據(jù)段2是<radioshow radioshowID=″News report″>
<description>news report every evening</description>
<start_time>6pm</start_time>
<end_time>7pm</end_time>
<party><host>Mr.ABC</host><participant></participant></party>
</radioshow>
上述兩個數(shù)據(jù)段的相同之處是具有與上述模板一樣的數(shù)據(jù)結構,不同之處在于每一個數(shù)據(jù)段包含有不同的有效內容,如在數(shù)據(jù)段1中的″new talk show″,a new TV talk show every Friday等,在數(shù)據(jù)段2中的″News report″,news report every evening等。
再接下來,根據(jù)已經(jīng)獲取的壓縮參數(shù)對數(shù)據(jù)段進行順序編碼壓縮(步驟S450),由于該壓縮參數(shù)包含了具有相同數(shù)據(jù)結構的模板的壓縮信息和存儲的地址以及長度等信息,因此,根據(jù)該壓縮參數(shù)在對該數(shù)據(jù)段進行順序壓縮時,順序壓縮所具有的特性會自動搜尋已經(jīng)出現(xiàn)過的字符串,當搜尋到曾經(jīng)在模板中出現(xiàn)過的編碼字符串時,就會自動輸出該字符串在模板中的出現(xiàn)位置及長度。所以,順序編碼法則會自動將該數(shù)據(jù)段中與已壓縮過的的模板相同的部分以存儲地址和長度替代,這個存儲地址指向該壓縮后的模板,替換后的數(shù)據(jù)段的大小遠遠小于原先的數(shù)據(jù)段。由于借助于壓縮該模板過程中產(chǎn)生的壓縮參數(shù)來對該數(shù)據(jù)段進行順序壓縮,同時壓縮后的模板可被丟棄,因而能夠大大提高數(shù)據(jù)段的壓縮率。
最后,存儲該壓縮后的數(shù)據(jù)段(步驟S460)。為了不影響壓縮率,該壓縮后的數(shù)據(jù)段的存儲區(qū)域與壓縮后的模板的存儲區(qū)域是不同的,例如,可以以不同的文件名進行存儲。
上述實施例完成了對一個數(shù)據(jù)段的壓縮,在很多情況下,需要依次對多個具有相同模板的數(shù)據(jù)段進行順序壓縮。例如,可以依次對20個電視節(jié)目數(shù)據(jù)(也就是20個數(shù)據(jù)段)進行壓縮,這些電視節(jié)目數(shù)據(jù)經(jīng)過預處理后具有相同或者相似的數(shù)據(jù)結構。在根據(jù)上述流程S460壓縮完一個數(shù)據(jù)段后,可以繼續(xù)按上述流程壓縮下一個數(shù)據(jù)段,值得注意的是,在每一個流程的開始,需要初始化編碼狀態(tài),比如,清空壓縮裝置中的所有壓縮參數(shù),以確保本流程結束時的壓縮參數(shù)不會影響下一個流程,因為本流程結束時的參數(shù)已包括一些對應于該數(shù)據(jù)段中的有效內容的壓縮參數(shù)。
圖5是根據(jù)本發(fā)明的一個實施例的一個順序解壓縮一個壓縮后的數(shù)據(jù)段的裝置的結構示意框圖。該壓縮后的數(shù)據(jù)段是由裝置300獲得,該數(shù)據(jù)段具有所述的數(shù)據(jù)結構。裝置500包括一個獲取裝置510和一個解壓縮裝置520。裝置500還可包括一個存儲裝置540和一個丟棄裝置550。
獲取裝置510,用于獲取多個解壓縮參數(shù),這些解壓縮參數(shù)指明了該壓縮后的模板的解壓縮信息,包括這個模板的解壓縮方式、存儲位置、數(shù)據(jù)結構等信息。該壓縮參數(shù)可以來自于存儲裝置540。該解壓縮參數(shù)對應于解壓縮裝置520在解壓縮完該壓縮后的模板時的內部狀態(tài)。
解壓縮裝置520,用于根據(jù)所獲得的解壓縮參數(shù),對該壓縮后的數(shù)據(jù)段進行順序解壓縮,從而得到一個解壓縮后的數(shù)據(jù)段。如果無法直接從獲取裝置510中獲得該解壓縮參數(shù),則該解壓縮裝置520還用于對一個該壓縮后的模板進行順序解壓縮,從而得到一個解壓縮后的模板和所述的解壓縮參數(shù),該模板具有所述的數(shù)據(jù)結構。
存儲裝置540,用于存儲解壓縮后的數(shù)據(jù)段,還可用于存儲所述的解壓縮參數(shù)。
丟棄裝置550,用于丟棄解壓縮后的模板。
裝置500的運行過程詳見下面圖6所述。
圖6是根據(jù)本發(fā)明的一個實施例的一個順序解壓縮一個的流程圖。該壓縮后的數(shù)據(jù)段是由圖4流程產(chǎn)生的,該數(shù)據(jù)段具有所述的數(shù)據(jù)結構。
首先,獲取一個壓縮后的模板(步驟S610),該模板具有所述的數(shù)據(jù)結構。該壓縮后的模板是從一個存儲裝置中獲取,也可以由網(wǎng)絡或者其他裝置傳送來。該壓縮后的模板還可以通過對一個具有所述數(shù)據(jù)結構的模板進行順序壓縮來獲得。
然后,對該壓縮后的模板進行順序解壓縮(步驟S620)。具體來說,在解碼狀態(tài)初始化后,對壓縮后的模板進行順序解壓縮,得到一個解壓縮后的模板和多個解壓縮參數(shù)。該解壓縮參數(shù)可用于解壓縮后面的待解壓縮的數(shù)據(jù)段,該解壓縮參數(shù)包括該壓縮后的模板的解壓縮信息,包括解壓縮方式、地址和數(shù)據(jù)結構等信息。該順序解壓縮可以利用Zlib順序解壓縮運算法則。為了節(jié)約存儲空間,可丟棄該解壓縮后的模板(步驟S630),該丟棄可通過該模板的文件結束標志來實現(xiàn)。
上述步驟S610-S630是通過對壓縮后的模板進行順序解壓縮從而獲取解壓縮參數(shù)的過程。該解壓縮參數(shù)可被存儲下來,如存儲到一個本地存儲裝置中,以供在對的另一個壓縮后的數(shù)據(jù)段進行解壓縮時使用,該數(shù)據(jù)段具有同樣/類似數(shù)據(jù)結構。在這種情況下,如果在一個本地存儲裝置中已經(jīng)保存了該解壓縮參數(shù),則在對所述的另一個壓縮后的數(shù)據(jù)段進行解壓縮時,則可以不進行上述步驟S410-S430,即不需要對一個壓縮后的模板進行解壓縮,而可以直接從該存儲裝置中獲得該解壓縮參數(shù)。值得注意的是,在直接從該存儲裝置中獲得該解壓縮參數(shù)前,應先初始化編碼狀態(tài),以確保前一個流程結束時的解壓縮參數(shù)不會影響本流程。
接著,獲取一個壓縮后的數(shù)據(jù)段(步驟S640)。該壓縮后的數(shù)據(jù)段可以從一個存儲裝置中獲取,也可以由網(wǎng)絡或者其他裝置傳送而來。
隨后,對該壓縮后的數(shù)據(jù)段進行順序解壓縮(步驟S650),該順序解壓縮可以利用Zlib順序解壓縮運算法則。根據(jù)已經(jīng)獲得的解壓縮參數(shù)和壓縮的數(shù)據(jù)段中的存儲地址找到相應的替換信息,并把該替換信息替換到解壓縮后的數(shù)據(jù)段,最終得到一個完整的解壓縮后的數(shù)據(jù)段。該解壓縮后的數(shù)據(jù)段具有所述的數(shù)據(jù)結構,包含特定的有效內容。
最后,存儲該解壓縮后的數(shù)據(jù)段(步驟S660)。
上述解壓縮過程完成了對一個壓縮后的數(shù)據(jù)段的解壓縮,在很多情況下,需要依次對很多個壓縮后的數(shù)據(jù)段進行順序解壓縮,這些數(shù)據(jù)段具有相同/類似的數(shù)據(jù)結構。在根據(jù)上述流程S660解壓縮完一個壓縮后的數(shù)據(jù)段后,可以繼續(xù)按上述流程解壓縮下一個壓縮后的數(shù)據(jù)段,值得注意的是,在每一個流程的開始,需要初始化編碼狀態(tài),比如,清空壓縮裝置中的所有解壓縮參數(shù),以確保本流程結束時的解壓縮參數(shù)不會影響下一個流程,因為本流程結束時的參數(shù)已包括一些對應于該數(shù)據(jù)段中的有效內容的解壓縮參數(shù)。
上述實施例的順序壓縮/解壓縮數(shù)據(jù)的方法,主要是通過預處理過程從而將數(shù)據(jù)轉換為具有相同數(shù)據(jù)結構的數(shù)據(jù)段,并且同時得到一個構造該數(shù)據(jù)段的模板用于壓縮/解壓縮數(shù)據(jù)。該方法通過對一個具有一種數(shù)據(jù)結構的模板的壓縮,得到具有同樣數(shù)據(jù)結構的數(shù)據(jù)段壓縮所需要的壓縮參數(shù),并根據(jù)此參數(shù)對數(shù)據(jù)段進行壓縮,并丟棄壓縮后的模板,從而得到高壓縮率的數(shù)據(jù)段。同時,由于每個數(shù)據(jù)段是單獨進行順序壓縮的,因此也就能夠隨機存取每一個數(shù)據(jù)段。相應地,該方法通過對一個壓縮后的模板的解壓縮,得到壓縮后的數(shù)據(jù)段解壓縮所需要的壓縮參數(shù),該數(shù)據(jù)段與該模版具有同樣的數(shù)據(jù)結構,并根據(jù)此參數(shù)對壓縮后的數(shù)據(jù)段進行解壓縮,從而一個解壓縮后的數(shù)據(jù)段。同時,由于每個數(shù)據(jù)段是單獨進行順序壓縮的,因此也就能夠單獨地對每一個壓縮后的數(shù)據(jù)段進行解壓縮。
下面的實驗結果可進一步說明本發(fā)明的壓縮率相比與現(xiàn)有技術的壓縮率的優(yōu)勢。該實驗包括以圖2所述的技術進行數(shù)據(jù)段壓縮的壓縮率為基準,對同樣的數(shù)據(jù)段進行順序壓縮,本發(fā)明例的壓縮率提高了38.4%,。所有的方法均利用Zlib作為順序壓縮/解壓縮的運算法則。以下的表格1對兩種結果進行了描述。
表格1實驗結果

雖然經(jīng)過對本發(fā)明結合具體實施例進行描述,對于在本技術領域熟練的人士,根據(jù)上文的敘述做出的替代、修改與變化將是顯而易見的。因此,在這樣的替代、修改和變化落入附后的權利要求的精神和范圍內時,應該被包括在本發(fā)明中。
權利要求
1.一種順序壓縮一個數(shù)據(jù)段的方法,該數(shù)據(jù)段具有一種數(shù)據(jù)結構,包括步驟a.獲取多個壓縮參數(shù);b.根據(jù)所獲得的壓縮參數(shù),對所述的數(shù)據(jù)段進行順序壓縮,從而得到一個壓縮后的數(shù)據(jù)段。
2.如權利要求1所述的方法,其中步驟a為對具有所述數(shù)據(jù)結構的一個模板進行順序壓縮,從而得到所述的壓縮參數(shù)。
3.如權利要求2所述的方法,其中步驟a還得到一個壓縮后的模板。
4.如權利要求3所述的方法,還包括步驟丟棄所述壓縮后的模板。
5.如權利要求3所述的方法,還包括步驟分別存儲所述壓縮后的模板與壓縮后的數(shù)據(jù)段。
6.如權利要求1所述的方法,其中步驟a中所述的壓縮參數(shù)來自一個存儲裝置。
7.如權利要求1所述的方法,還包括步驟對數(shù)據(jù)進行預處理,從而得到所述的數(shù)據(jù)段。
8.如權利要求1所述的方法,還包括步驟存儲所述的壓縮后的數(shù)據(jù)段。
9.一種順序解壓縮一個壓縮后的數(shù)據(jù)段的方法,該數(shù)據(jù)段具有一種數(shù)據(jù)結構,包括步驟a.獲取多個解壓縮參數(shù);b.根據(jù)所獲得的解壓縮參數(shù),對所述壓縮后的數(shù)據(jù)段進行順序解壓縮,從而得到一個解壓縮后的數(shù)據(jù)段。
10.如權利要求9所述的方法,其中步驟a為對一個壓縮后的模板進行順序解壓縮,從而得到所述的解壓縮參數(shù),該模板具有所述的數(shù)據(jù)結構。
11.如權利要求10所述的方法,還包括步驟對具有所述數(shù)據(jù)結構的一個模板進行順序壓縮,從而得到所述的壓縮后的模板。
12.如權利要求11所述的方法,所述壓縮后的模板來自于一個存儲裝置。
13.如權利要求10所述的方法,其中步驟a還得到一個解壓縮后的模板。
14.如權利要求13所述的方法,還包括步驟丟棄所述的解壓縮后的模板。
15.如權利要求10所述的方法,還包括步驟存儲所述的解壓縮后的數(shù)據(jù)段。
16.如權利要求9所述的方法,所述的解壓縮參數(shù)來自于一個存儲裝置。
17.一種順序壓縮一個數(shù)據(jù)段的裝置,該數(shù)據(jù)段具有一種數(shù)據(jù)結構,包括一個獲取裝置,用于獲取多個壓縮參數(shù);一個壓縮裝置,用于根據(jù)所獲得的壓縮參數(shù),對所述的數(shù)據(jù)段進行順序壓縮,從而得到一個壓縮后的數(shù)據(jù)段。
18.如權利要求17所述的裝置,還包括一個預處理裝置,用于對數(shù)據(jù)進行預處理,從而得到所述的數(shù)據(jù)段。
19.如權利要求17所述的裝置,還包括一個存儲裝置,用于存儲所述的壓縮參數(shù)。
20.如權利要求17所述的裝置,其中所述的壓縮裝置還用于對具有所述數(shù)據(jù)結構的一個模板進行順序壓縮,從而得到所述的壓縮參數(shù)和一個壓縮后的模板。
21.如權利要求20所述的裝置,還包括一個丟棄裝置,用于丟棄所述壓縮后的模板。
22.一種順序解壓縮一個壓縮后的數(shù)據(jù)段的裝置,該數(shù)據(jù)段具有一種數(shù)據(jù)結構,包括一個獲取裝置,用于獲取多個解壓縮參數(shù);一個解壓縮裝置,用于根據(jù)所獲得的解壓縮參數(shù),對所述壓縮后的數(shù)據(jù)段進行順序解壓縮,從而得到一個解壓縮后的數(shù)據(jù)段。
23.如權利要求22所述的裝置,還包括一個存儲裝置,用于存儲所述的解壓縮參數(shù)。
24.如權利要求22所述的裝置,其中所述的解壓縮裝置還用于對一個壓縮后的模板進行順序解壓縮,從而得到所述的解壓縮參數(shù)和一個解壓縮后的模板,該模板具有所述的數(shù)據(jù)結構。
25.如權利要求24所述的裝置,還包括一個丟棄裝置,用于丟棄所述解壓縮后的模板。
全文摘要
本發(fā)明提供一種順序壓縮/解壓縮一個數(shù)據(jù)段的方法及其裝置。本發(fā)明首先獲取多個壓縮/解壓縮參數(shù),然后通過這些獲得的壓縮/解壓縮參數(shù)對該數(shù)據(jù)段進行順序壓縮/解壓縮,從而得到一個壓縮/解壓縮后的數(shù)據(jù)段。該壓縮參數(shù)者是來自于一個存儲裝置,當然,該壓縮參數(shù)還可通過對具有該數(shù)據(jù)結構的一個模板進行壓縮后得到。對具有該數(shù)據(jù)結構的一個模板進行壓縮后除了得到所述的壓縮參數(shù)外,還得到一個壓縮后的模板,該壓縮后的模板被丟棄。本發(fā)明利用壓縮參數(shù)對一個具有特定數(shù)據(jù)結構的數(shù)據(jù)段進行壓縮后,其數(shù)據(jù)結構部分可被濾出,故可提高數(shù)據(jù)的壓縮比。
文檔編號H03M7/30GK1951017SQ200580014935
公開日2007年4月18日 申請日期2005年4月1日 優(yōu)先權日2004年5月13日
發(fā)明者A·莫雷爾 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
衡阳市| 剑河县| 大余县| 房山区| 仁化县| 金乡县| 彭州市| 新郑市| 南木林县| 安溪县| 武汉市| 麻阳| 寻乌县| 株洲县| 金溪县| 四子王旗| 泉州市| 于田县| 靖边县| 天柱县| 林甸县| 都江堰市| 仙居县| 台南市| 鹤庆县| 丰宁| 惠安县| 张北县| 龙胜| 上思县| 武汉市| 崇左市| 罗定市| 镇原县| 雅安市| 稷山县| 禹州市| 阳西县| 高尔夫| 凯里市| 信阳市|