標記式二進制數(shù)據(jù)可逆性壓縮法
【專利摘要】本發(fā)明是一種標記式二進制數(shù)據(jù)可逆性壓縮法,克服了數(shù)據(jù)可逆性壓縮技術壓縮率低下而制約了計算機及電子信息業(yè)發(fā)展的問題。它是用標記文件把需壓縮的數(shù)據(jù)分成有規(guī)律的兩個文件,然后再壓縮分割;再重復以上過程而達到把需壓縮的數(shù)據(jù)處理成有規(guī)律的數(shù)據(jù),并由標記文件來完全表示而達到壓縮的目的。
【專利說明】標記式二進制數(shù)據(jù)可逆性壓縮法
【技術領域】
[0001]本發(fā)明是一種標記式二進制數(shù)據(jù)可逆性壓縮方法,為大數(shù)據(jù)的移動、傳輸、儲存提供便利。
技術背景
[0002]目前,數(shù)據(jù)可逆性壓縮技術發(fā)展緩慢,壓縮率僅有I倍到幾倍,其中還受數(shù)據(jù)本身規(guī)律的限制,嚴重制約了數(shù)據(jù)移動、儲存特別是傳輸?shù)募夹g進步,從而制約了計算機和電子信息業(yè)的發(fā)展。
【發(fā)明內(nèi)容】
[0003]為了克服數(shù)據(jù)可逆性壓縮技術壓縮率低下而制約了計算機及電子信息業(yè)發(fā)展的問題,本發(fā)明創(chuàng)造了一種二進制數(shù)據(jù)可逆性壓縮的壓縮方法,以極大的壓縮率來壓縮數(shù)據(jù)。
[0004]首先,將要壓縮的二進制數(shù)據(jù)中相同的連續(xù)數(shù)據(jù)重復率大于一定次數(shù)的數(shù)據(jù),用規(guī)定的不和壓縮數(shù)據(jù)沖突的標記,加重復率大于一定次數(shù)的連續(xù)數(shù)據(jù)重復規(guī)定次數(shù)的次數(shù),加相同連續(xù)數(shù)據(jù)中最后不夠規(guī)定次數(shù)的數(shù)據(jù)位數(shù),再加規(guī)定的不和壓縮數(shù)據(jù)沖突的標記來代替相同的連續(xù)數(shù)據(jù)重復率大于一定次數(shù)的數(shù)據(jù)和重復率沒有大于一定次數(shù)數(shù)據(jù)一起寫入暫存文件A。
[0005]然后,將文件A的數(shù)據(jù)分為兩個文件,以首位數(shù)據(jù)類型來規(guī)定的第一文件B和另一數(shù)據(jù)類型的第二文件C。另外再創(chuàng)建標記文件AA,并將文件A等于第一文件B (同時注明數(shù)據(jù)類型,以下由數(shù)據(jù)類型規(guī)定的文件都需注明數(shù)據(jù)類型)加第二文件C寫入標記文件AA。文件B是將文件A的數(shù)據(jù)中的非B文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。文件C是將文件A的數(shù)據(jù)中的非C文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。
[0006]由于文件B和C壓縮原理基本一致(不同處將在文中注明),下面將只敘述文件B的壓縮原理。
[0007]將文件B的數(shù)據(jù)中的由B文件類型的連續(xù)數(shù)據(jù)和只有一位的另一類型數(shù)據(jù)看成一段數(shù)據(jù)來討論。因為B文件首位是B文件類型,所以另一類型數(shù)據(jù)就在段尾(如是C文件則另一類型數(shù)據(jù)在段頭);文件B的數(shù)據(jù)除最后一段都是如此,如最后一段數(shù)據(jù)的段尾沒有另一類型數(shù)據(jù)就補一位這一類型數(shù)據(jù),并寫入標記文件AA (如是C文件的最后一段只有另一類型數(shù)據(jù)則舍棄,并寫入標記文件AA)。把數(shù)據(jù)段中B文件類型的數(shù)據(jù)是奇數(shù)位的首位不變,后邊的每兩位由一位另一類型的數(shù)據(jù)代替(如是C文件則是最后一位不變,前邊的每兩位由一位另一類型的數(shù)據(jù)代替),是偶數(shù)位的頭兩位不變,后邊的每兩位由一位另一類型的數(shù)據(jù)代替(如是C文件則是最后兩位不變,前邊的每兩位由一位另一類型的數(shù)據(jù)代替)。將處理后的數(shù)據(jù)分為兩個文件,以首位數(shù)據(jù)類型來規(guī)定的第一文件BA和另一數(shù)據(jù)類型的第二文件BB。并將文件B等于文件BA加文件BB寫入標記文件AA。文件BA是將文件B處理后的數(shù)據(jù)中的非BA文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。文件BB是將文件B處理后的數(shù)據(jù)中的非BB文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替組成。[0008]由于文件BB壓縮原理同文件B或C 一致,下面將只敘述文件BA的壓縮原理。
[0009]文件BA經(jīng)過以上壓縮過程,再將文件BA的數(shù)據(jù)中的由BA文件類型的連續(xù)數(shù)據(jù)和只有一位的另一類型數(shù)據(jù)看成一段數(shù)據(jù),文件中只有兩種數(shù)據(jù)段,第一種是由一位BA文件類型的數(shù)據(jù)和一位另一類型數(shù)據(jù)組成;第二種是由兩位BA文件類型的數(shù)據(jù)和一位另一類型數(shù)據(jù)組成。將第一種數(shù)據(jù)段由一位BA文件類型的數(shù)據(jù)代替,第二種數(shù)據(jù)段由非BA文件類型的數(shù)據(jù)代替,寫入文件BAA,同時將BA等于BBA寫入標記文件AA。
[0010]若BAA文件數(shù)據(jù)的排列方式是由一位BAA文件類型數(shù)據(jù)加一位另一類數(shù)據(jù)的重復排列(文件數(shù)據(jù)位數(shù)是奇數(shù)的補一位數(shù)據(jù)使文件數(shù)據(jù)成為有規(guī)律的重復數(shù)據(jù)并在標記文件AA中標明),把文件名和重復的次數(shù)和重復的數(shù)據(jù)(單次)寫入標記文件AA,到此壓縮完成。若不是按此規(guī)律排列,將BAA文件再次壓縮。
[0011]由于文件BAA壓縮原理同文件A的一致而重復以上的壓縮過程,所以省略。
[0012]最后所有的數(shù)據(jù)類型文件將壓縮成有規(guī)律的重復數(shù)據(jù)(文件數(shù)據(jù)位數(shù)是奇數(shù)的補一位數(shù)據(jù)使文件數(shù)據(jù)成為有規(guī)律的重復數(shù)據(jù)并在標記文件AA中標明),把所有的文件名和重復的次數(shù)和重復的數(shù)據(jù)(單次)寫入標記文件AA,到此壓縮完成。
[0013]文件的解壓,就是通過標記文件AA逆操作以上的壓縮過程。
[0014]使用本發(fā)明后,不論數(shù)據(jù)大小將壓縮為一個標記文件,從而大幅提高了現(xiàn)有的壓縮效率,為壓縮技術的進步和計算機及電子信息業(yè)發(fā)展起到積極的推動作用。
【專利附圖】
【附圖說明】
[0015]圖1是第一次初步壓縮數(shù)據(jù);
[0016]圖2是將第一次處理的數(shù)據(jù)拆分成有規(guī)律的數(shù)據(jù);
[0017]圖3是將上一次處理的數(shù)據(jù)進一步拆分;
[0018]圖4是將有規(guī)律的數(shù)據(jù)寫入標記文件。
【具體實施方式】
[0019]按圖1所示,將同類數(shù)據(jù)連續(xù)位數(shù)大于3的數(shù)據(jù)用規(guī)定的格式數(shù)據(jù)代替。例I類數(shù)據(jù),用標記1111+用連續(xù)I的個數(shù)除以4所得的商+余數(shù)+標記1111(商用一個8位二進制數(shù)表示,余數(shù)用一個2位二進制數(shù)表示;如商大于255,這個數(shù)據(jù)用FF表示,再用下一個格式數(shù)據(jù)表示商減255的差,如還大于再用下一個格式數(shù)據(jù)表示以此類推,余數(shù)寫入表示商的最后一個格式數(shù)據(jù),沒有余數(shù)的寫00),代替I類連續(xù)大于3的數(shù)據(jù)(O類數(shù)據(jù)以此類推)。把同類數(shù)據(jù)連續(xù)位數(shù)小于3的數(shù)據(jù)和規(guī)定的格式數(shù)據(jù)按原始數(shù)據(jù)的順序?qū)懭霑捍嫖募嗀。
[0020]按圖2所示,創(chuàng)建標記文件AA。將文件A拆分為由文件數(shù)據(jù)的頭一位數(shù)據(jù)的類型(例如是I)所規(guī)定的第一文件B,和另一類型的第二文件C。文件B是將文件A的數(shù)據(jù)中的非B文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。文件C是將文件A的數(shù)據(jù)中的非C文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。并將文件A等于第一文件B (同時注明數(shù)據(jù)類型,以下由數(shù)據(jù)類型規(guī)定的文件都需注明數(shù)據(jù)類型)加第二文件C寫入標記文件AA。
[0021]由于文件B和C壓縮原理基本一致,下面將只敘述文件B的壓縮原理。
[0022]按圖3所示,將文件B中的連續(xù)的I (因為文件B為I類數(shù)據(jù)文件)和單獨一位的O看成一個數(shù)據(jù)段,文件B的數(shù)據(jù)除最后一段都是如此,如最后一段數(shù)據(jù)的段尾沒有O就補一位O,并寫入標記文件AA。把數(shù)據(jù)段中I類型的數(shù)據(jù)是奇數(shù)位的首位不變,后邊的每兩位由一位O代替,是偶數(shù)位的頭兩位不變,后邊的每兩位由一位O代替。將處理后的數(shù)據(jù)分為兩個文件,以首位數(shù)據(jù)類型I來規(guī)定的第一文件BA和另一數(shù)據(jù)O類型的第二文件BB。并將文件B等于文件BA加文件BB寫入標記文件AA。文件BA是將文件B處理后的數(shù)據(jù)中的O數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。文件BB是將文件B處理后的數(shù)據(jù)中的I數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替組成。
[0023]由于文件BB壓縮原理同文件B或C 一致,下面將只敘述文件BA的壓縮原理。
[0024]按圖4所示,將文件BA中的數(shù)據(jù)以O為段尾分成若干數(shù)據(jù)段,這些數(shù)據(jù)段中只有兩種數(shù)據(jù)段10和110。將I代替10,0代替110,形成新的文件BAA。并在標記文件中寫入BA=BAA0然后在檢查文件BAA中的數(shù)據(jù)排列是否是和10重復排列相同;如相同再檢查數(shù)據(jù)的位數(shù)是否是奇數(shù),若是奇數(shù)則在數(shù)據(jù)最后加0,并寫如AA文件BAA+0=BAA+10的重復次數(shù)+10 ;若不是則直接寫入AA文件BAA=BAA+10的重復次數(shù)+10。如不同,再將BAA文件按文件A的流程重新壓縮。因步驟相同所以省略。直到使數(shù)據(jù)形成有規(guī)律的排列,并寫入標記文件AA。
[0025]文件的解壓,就是通過標記文件AA逆操作以上的壓縮過程所以不再說明。
[0026]文中所說的連續(xù)數(shù)據(jù)包括單一數(shù)據(jù)。
[0027]以上是結合附圖對本發(fā)明進行詳細的說明。應當說明的是,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
【權利要求】
1.將需壓縮的二進制數(shù)據(jù)分為兩個文件或數(shù)據(jù)塊,以首位數(shù)據(jù)類型來規(guī)定的第一文件(或數(shù)據(jù)塊)和另一數(shù)據(jù)類型的第二文件(或數(shù)據(jù)塊)。另外再創(chuàng)建標記文件,并將需壓縮的二進制數(shù)據(jù)等于第一文件(或數(shù)據(jù)塊,同時注明數(shù)據(jù)類型)加第二文件(或數(shù)據(jù)塊,同時注明數(shù)據(jù)類型)寫入標記文件。第一文件(或數(shù)據(jù)塊)是將需壓縮的二進制數(shù)據(jù)中的非第一文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。第二文件(或數(shù)據(jù)塊)是將需壓縮的二進制數(shù)據(jù)中的非第二文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)由一位代替后組成。從而形成有一定規(guī)律的數(shù)據(jù)塊或數(shù)據(jù)文件。此中的連續(xù)數(shù)據(jù)包括單一數(shù)據(jù)。
2.將權利I中形成的有一定規(guī)律的數(shù)據(jù)塊或數(shù)據(jù)文件中的數(shù)據(jù),看成有規(guī)律的數(shù)據(jù)段(第一文件或數(shù)據(jù)塊由第一文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)和一位另一類數(shù)據(jù)類型數(shù)據(jù)組成的段組成,如第一文件或數(shù)據(jù)塊的最后沒有另一類數(shù)據(jù)則補齊形成一個完整的數(shù)據(jù)段并在標記文件中做好標記;第二文件或數(shù)據(jù)塊由一位非第二文件數(shù)據(jù)類型數(shù)據(jù)和第二文件數(shù)據(jù)類型的連續(xù)數(shù)據(jù)組成的段組成,如第二文件或數(shù)據(jù)塊的最后是一位非第二文件數(shù)據(jù)類型數(shù)據(jù)則舍棄并在標記文件中做好標記)。將第一文件或數(shù)據(jù)塊的數(shù)據(jù)段中第一文件類型的數(shù)據(jù)是奇數(shù)位的首位不變,后邊的每兩位由一位另一類型的數(shù)據(jù)代替,是偶數(shù)位的頭兩位不變,后邊的每兩位由一位另一類型的數(shù)據(jù)代替;將第二文件或數(shù)據(jù)塊的數(shù)據(jù)段中第二文件類型的數(shù)據(jù)是奇數(shù)位的尾位不變,前邊的每兩位由一位另一類型的數(shù)據(jù)代替,是偶數(shù)位的最后兩位不變,前邊的每兩位由一位另一類型的數(shù)據(jù)代替;從而形成了有一定規(guī)律的壓縮數(shù)據(jù)文件或數(shù)據(jù)塊。此中的連續(xù)數(shù)據(jù)包括單一數(shù)據(jù)。
3.將權利2中形成的數(shù)據(jù)文件或數(shù)據(jù)塊,再經(jīng)過權利I的方法進行拆分會形成兩種規(guī)律的數(shù)據(jù)文件和數(shù)據(jù)塊,一種是和權利I形成的數(shù)據(jù)文件或數(shù)據(jù)塊規(guī)律相同,一種是數(shù)據(jù)文件或數(shù)據(jù)塊由數(shù)據(jù)10、100或10、110或01、011或01、001其中的兩種數(shù)據(jù)段組成,再用O、I兩類數(shù)據(jù)代替這兩種數(shù)據(jù)段;從而使數(shù)據(jù)壓縮的更小。
4.通過使用權利1、2、3中的方法,最終把各個數(shù)據(jù)文件或數(shù)據(jù)塊壓縮成只有簡單數(shù)據(jù)的重復,然后把數(shù)據(jù)位數(shù)是奇數(shù)的數(shù)據(jù)文件或數(shù)據(jù)塊按規(guī)律補足為偶數(shù),并在標記文件中做好標記,再把這些簡單的數(shù)據(jù)和重復的次數(shù)以及數(shù)據(jù)文件或數(shù)據(jù)塊的名稱寫入標記文件,從而把原始數(shù)據(jù)壓縮成一個小的標記文件。
5.通過標記文件和權利1、2、3、4中的方法進行逆向解壓。
【文檔編號】G06F17/30GK103699646SQ201310729582
【公開日】2014年4月2日 申請日期:2013年12月24日 優(yōu)先權日:2013年12月24日
【發(fā)明者】呂志強 申請人:呂志強