本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及數(shù)據(jù)壓縮、解壓縮的方法及系統(tǒng)。
背景技術(shù):
通信技術(shù)中,通常需要對具有一定冗余度的數(shù)據(jù)進行壓縮編碼。常見的數(shù)據(jù)壓縮方法有行程編碼、霍夫曼編碼、LZ算法及其相應的衍生出來的其它高效算法等,但是,上述所列舉的這些算法主要適用于數(shù)據(jù)源的壓縮,即對還沒有進入通信網(wǎng)絡的信源數(shù)據(jù)進行壓縮,并且集中在比特級的處理上。
在現(xiàn)有技術(shù)中,霍夫曼編碼是一種古老而優(yōu)雅的數(shù)據(jù)壓縮方法,其是一種基于最小冗余編碼的壓縮算法。其中,最小冗余編碼是指,如果已知一組數(shù)據(jù)中某符號出現(xiàn)的頻率,就可以用一種特殊的方式來表示該符號。例如,用較少的比特數(shù)表示出現(xiàn)頻率較高的符號,而用較多的比特數(shù)來表示出現(xiàn)頻率較低的符號,從而減少數(shù)據(jù)需要的存儲空間,達到壓縮的目的。由于其對符號進行壓縮編碼過程中,采用了不同的比特數(shù)代替不同的符號,因此,如果采用霍夫曼編碼壓縮以字節(jié)為單位的媒體數(shù)據(jù),則存在對比特數(shù)據(jù)的操作,比較復雜且耗時較多。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供數(shù)據(jù)壓縮、解壓縮的方法及系統(tǒng),解決數(shù)據(jù)壓縮因比特級處理帶來的高復雜度和耗時多的問題,以提高數(shù)據(jù)傳輸效率。
本發(fā)明實施例采用以下技術(shù)方案:
第一方面,數(shù)據(jù)壓縮的方法,包括步驟,a:掃描原始字節(jié)數(shù)據(jù);b:若所述原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù),則與所述連續(xù)相同的字節(jié)數(shù)據(jù)的個數(shù)進行第一邏輯運算,得到第一邏輯運算值,將所述第一邏輯運算值存儲為一個字節(jié)數(shù)據(jù)、所述連續(xù)相同的字節(jié)數(shù)據(jù)的任一個字節(jié)數(shù)據(jù)存儲為另一個字節(jié)數(shù)據(jù);c:判斷所述原始字節(jié)數(shù)據(jù)是否掃描完成,若是,轉(zhuǎn)向步驟d,若否,返回步驟a;d:根據(jù)所述存儲的字節(jié)數(shù)據(jù),生成壓縮數(shù)據(jù)。
第二方面,數(shù)據(jù)解壓縮的方法,包括步驟,A:掃描壓縮數(shù)據(jù);B:對所 述壓縮數(shù)據(jù)的第n個字節(jié)數(shù)據(jù)進行壓縮邏輯判斷運算,獲取壓縮邏輯判斷值和壓縮邏輯,其中,n為大于等于1的自然數(shù);C:若所述壓縮邏輯判斷值等于第一預設(shè)值,則所述壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù);對所述第n個字節(jié)數(shù)據(jù)進行第一邏輯個數(shù)運算,得到數(shù)據(jù)個數(shù)i,其中,i為大于等于2的自然數(shù),重復讀取i個所述壓縮數(shù)據(jù)的第n+1個字節(jié)數(shù)據(jù);D:判斷所述壓縮數(shù)據(jù)是否掃描完成,若是,轉(zhuǎn)向步驟E,若否,返回步驟A;E:根據(jù)所述讀取的字節(jié)數(shù)據(jù),恢復原始字節(jié)數(shù)據(jù)。
第三方面,數(shù)據(jù)壓縮的系統(tǒng),包括:原始字節(jié)數(shù)據(jù)掃描單元,用于掃描原始字節(jié)數(shù)據(jù);壓縮存儲單元,用于對所述原始字節(jié)數(shù)據(jù)進行壓縮和存儲;第一判斷單元,用于判斷所述原始字節(jié)數(shù)據(jù)是否掃描完成;壓縮數(shù)據(jù)生成單元,用于根據(jù)所述存儲的字節(jié)數(shù)據(jù),生成壓縮數(shù)據(jù)。
第四方面,數(shù)據(jù)解壓縮的系統(tǒng),包括:壓縮數(shù)據(jù)掃描單元,用于掃描壓縮數(shù)據(jù);壓縮邏輯判斷值和壓縮邏輯獲取單元,用于對所述壓縮數(shù)據(jù)的第n個字節(jié)數(shù)據(jù)進行壓縮邏輯判斷運算,獲取壓縮邏輯判斷值和壓縮邏輯,其中,n為大于等于1的自然數(shù);解壓縮讀取單元,用于根據(jù)所述壓縮邏輯判斷值和所述壓縮邏輯,對所述壓縮數(shù)據(jù)進行解壓縮和讀?。辉甲止?jié)數(shù)據(jù)恢復單元,用于根據(jù)所述讀取的字節(jié)數(shù)據(jù),恢復原始字節(jié)數(shù)據(jù)。
由上述技術(shù)方案可知,本技術(shù)方案通過步驟,a:掃描原始字節(jié)數(shù)據(jù);b:若所述原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù),則與所述連續(xù)相同的字節(jié)數(shù)據(jù)的個數(shù)進行第一邏輯運算,得到第一邏輯運算值,將所述第一邏輯運算值存儲為一個字節(jié)數(shù)據(jù)、所述連續(xù)相同的字節(jié)數(shù)據(jù)的任一個字節(jié)數(shù)據(jù)存儲為另一個字節(jié)數(shù)據(jù);c:判斷所述原始字節(jié)數(shù)據(jù)是否掃描完成,若是,轉(zhuǎn)向步驟d,若否,返回步驟a;d:根據(jù)所述存儲的字節(jié)數(shù)據(jù),生成壓縮數(shù)據(jù)。與現(xiàn)有技術(shù)中針對數(shù)據(jù)源進行數(shù)據(jù)壓縮的技術(shù)方案相比,本發(fā)明的技術(shù)方案可對傳輸數(shù)據(jù),例如無線通信網(wǎng)絡中不同無線節(jié)點之間傳輸?shù)拿襟w數(shù)據(jù)、測試數(shù)據(jù)和操作數(shù)據(jù)等進行數(shù)據(jù)壓縮。本技術(shù)方案以字節(jié)為單位,對具有一定冗余度的傳輸數(shù)據(jù)進行數(shù)據(jù)壓縮時,能夠達到降低數(shù)據(jù)壓縮的復雜度和耗時的技術(shù)效果。以無線通信網(wǎng)絡為例,可以提高無線通信網(wǎng)絡中不同無線節(jié)點之間的數(shù)據(jù)傳輸效率,從而間接增加無線通信網(wǎng)絡的帶寬資源利用率的技術(shù)效果。
附圖說明
圖1A是本發(fā)明實施例一提供的無線通信網(wǎng)絡傳輸數(shù)據(jù)壓縮的場景圖。
圖1B是本發(fā)明實施例一提供的數(shù)據(jù)壓縮的方法流程圖。
圖2A是本發(fā)明實施例二提供的數(shù)據(jù)壓縮和存儲的方法流程圖。
圖2B是本發(fā)明實施例二提供的增加了接口信息的數(shù)據(jù)壓縮的方法流程圖。
圖2C是本發(fā)明實施例二提供的數(shù)據(jù)壓縮、解壓縮接口信息結(jié)構(gòu)圖。
圖3是本發(fā)明實施例三提供的數(shù)據(jù)解壓縮的方法流程圖。
圖4是本發(fā)明實施例四提供的數(shù)據(jù)解壓縮和讀取的方法流程圖。
圖5是本發(fā)明實施例五提供的數(shù)據(jù)壓縮的系統(tǒng)結(jié)構(gòu)圖。
圖6是本發(fā)明實施例六提供的數(shù)據(jù)解壓縮的系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖,對本發(fā)明具體實施例作詳細的描述??梢岳斫獾氖?,此處所描述的具體實施例僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。
實施例一
如圖1B所示,本發(fā)明實施例提供數(shù)據(jù)壓縮的方法,所述方法可以應用在圖1A所示的應用場景中,本實施例的技術(shù)方案可以由無線節(jié)點來執(zhí)行,具體可以由配置在無線節(jié)點中的軟件程序負責實施。示例性的,無線通信網(wǎng)絡中的媒體數(shù)據(jù)、測試數(shù)據(jù)和操作維護數(shù)據(jù)等因存在冗余數(shù)據(jù)部分,會對無線通信網(wǎng)絡造成額外的負擔,因此無線通信網(wǎng)絡多個無線節(jié)點之間進行數(shù)據(jù)傳輸時,需要引入數(shù)據(jù)壓縮功能。如圖1A所示,傳輸數(shù)據(jù)經(jīng)數(shù)據(jù)壓縮后通過無線信道在無線節(jié)點110和無線節(jié)點120之間進行傳輸,其中,無線節(jié)點110包括接收模塊111和發(fā)送模塊112;無線節(jié)點120包括發(fā)送模塊121和接收模塊122;數(shù)據(jù)壓縮功能部署在發(fā)送模塊112和發(fā)送模塊121上,與之對應的,數(shù)據(jù)解壓縮功能部署在接收模塊111和接收模塊122上。如圖1B所示,本發(fā)明實施例提供的數(shù)據(jù)壓縮的方法包括以下步驟:
S110、掃描原始字節(jié)數(shù)據(jù)。
示例性的,掃描可從原始字節(jié)數(shù)據(jù)的第一個字節(jié)開始,依次掃描,根據(jù)掃描結(jié)果,從而可以確定出原始字節(jié)數(shù)據(jù)所存在的冗余成分,再針對冗余數(shù)據(jù)的 特點進行下一步的壓縮處理步驟。
S120、對所述原始字節(jié)數(shù)據(jù)進行壓縮和存儲。
若所述原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù),則與所述連續(xù)相同的字節(jié)數(shù)據(jù)的個數(shù)進行第一邏輯運算,得到第一邏輯運算值,將所述第一邏輯運算值存儲為一個字節(jié)數(shù)據(jù)、所述連續(xù)相同的字節(jié)數(shù)據(jù)的任一個字節(jié)數(shù)據(jù)存儲為另一個字節(jié)數(shù)據(jù)。
例如,當原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù)有3個,且分別是0x05,0x05,0x05時,則第一邏輯運算可以是,使用0x80與連續(xù)相同的字節(jié)數(shù)據(jù)的個數(shù)0x03進行邏輯“或”運算得到第一邏輯運算值0x83,然后所得到的第一邏輯運算值0x83存儲為一個字節(jié)數(shù)據(jù),將連續(xù)相同的字節(jié)數(shù)據(jù)0x05存儲為另一個字節(jié)數(shù)據(jù)。
S130、判斷所述原始字節(jié)數(shù)據(jù)是否掃描完成。
若掃描完成,則轉(zhuǎn)向步驟S140;若未掃描完成,則返回步驟S110繼續(xù)掃描。
S140、根據(jù)所述存儲的字節(jié)數(shù)據(jù),生成壓縮數(shù)據(jù)。
步驟S120中針對原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù)進行壓縮處理,使得原來占用3個字節(jié)數(shù)據(jù)的字節(jié)數(shù)據(jù)經(jīng)數(shù)據(jù)壓縮處理后,只占用2個字節(jié)數(shù)據(jù)。0x83,0x05即為壓縮數(shù)據(jù)。
由上述技術(shù)方案可知,通過步驟,a:掃描原始字節(jié)數(shù)據(jù);b:若所述原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù),則與所述連續(xù)相同的字節(jié)數(shù)據(jù)的個數(shù)進行第一邏輯運算,得到第一邏輯運算值,將所述第一邏輯運算值存儲為一個字節(jié)數(shù)據(jù)、所述連續(xù)相同的字節(jié)數(shù)據(jù)的任一個字節(jié)數(shù)據(jù)存儲為另一個字節(jié)數(shù)據(jù);c:判斷所述原始字節(jié)數(shù)據(jù)是否掃描完成,若是,轉(zhuǎn)向步驟d,若否,返回步驟a;d:根據(jù)所述存儲的字節(jié)數(shù)據(jù),生成壓縮數(shù)據(jù)。與現(xiàn)有技術(shù)中針對數(shù)據(jù)源進行數(shù)據(jù)壓縮的技術(shù)方案相比,本發(fā)明的技術(shù)方案可對傳輸數(shù)據(jù),例如無線通信網(wǎng)絡中不同無線節(jié)點之間傳輸?shù)拿襟w數(shù)據(jù)、測試數(shù)據(jù)和操作數(shù)據(jù)等進行數(shù)據(jù)壓縮。本技術(shù)方案以字節(jié)為單位,對具有一定冗余度的傳輸數(shù)據(jù)進行數(shù)據(jù)壓縮時,能夠達到降低數(shù)據(jù)壓縮的復雜度和耗時的技術(shù)效果。以無線通信網(wǎng)絡為例,可以提高無線通信網(wǎng)絡中不同無線節(jié)點之間的數(shù)據(jù)傳輸效率,從而間接增加無線通信網(wǎng)絡的帶寬資源利用率的技術(shù)效果。
實施例二
請參考圖2A,其是本發(fā)明實施例二提供的數(shù)據(jù)壓縮和存儲的方法流程圖。本發(fā)明實施例的方案與實施例一的區(qū)別和聯(lián)系在于,本實施例的技術(shù)方案在實施例一的步驟S120的基礎(chǔ)上,即在對所述原始字節(jié)數(shù)據(jù)進行壓縮和存儲的基礎(chǔ)上,進一步提供了當原始字節(jié)數(shù)據(jù)中存在連續(xù)遞增的字節(jié)數(shù)據(jù),以及當原始字節(jié)數(shù)據(jù)中存在不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)的情況下,對原始字節(jié)數(shù)據(jù)進行數(shù)據(jù)壓縮和存儲的優(yōu)選實施方式。
如圖2A所示,首先根據(jù)步驟S210確定原始字節(jié)數(shù)據(jù)中的數(shù)據(jù)特點;若由步驟S2210,即當確定原始字節(jié)數(shù)據(jù)中存在連續(xù)遞增的字節(jié)數(shù)據(jù);則可執(zhí)行步驟S2211,即與所述連續(xù)遞增的字節(jié)數(shù)據(jù)的個數(shù)進行第二邏輯運算,得到第二邏輯運算值;接著執(zhí)行步驟S2212,即將所述第二邏輯運算值存儲為一個字節(jié)數(shù)據(jù)、所述連續(xù)遞增的字節(jié)數(shù)據(jù)的第一個字節(jié)數(shù)據(jù)存儲為另一個字節(jié)數(shù)據(jù)。
其中,第二邏輯運算,可以是使用0xC0與所述連續(xù)遞增的字節(jié)數(shù)據(jù)的個數(shù)進行“或”運算。
若由步驟S2220,即當確定原始字節(jié)數(shù)據(jù)中存在不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù);則可執(zhí)行步驟S2221,即與所述不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)的個數(shù)進行第三邏輯運算,得到第三邏輯運算值;接著執(zhí)行步驟S2222,即將所述第三邏輯運算值存儲為一個字節(jié)數(shù)據(jù)、所述不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)的每一個字節(jié)數(shù)據(jù)依次各存儲為另一個字節(jié)數(shù)據(jù)。
其中,第三邏輯運算,可以是使用0x00與所述不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)的個數(shù)進行“或”運算。
最后根據(jù)步驟S230獲得存儲的字節(jié)數(shù)據(jù),根據(jù)所述存儲的字節(jié)數(shù)據(jù),生成壓縮數(shù)據(jù)。
請參考圖1A,對無線通信網(wǎng)絡的傳輸數(shù)據(jù)進行數(shù)據(jù)壓縮時,還需要在相應的發(fā)送模塊112和接收模塊122處理流程中增加壓縮與解壓縮功能單元,所以在對原始字節(jié)數(shù)據(jù)進行壓縮過程中,還可增加相應的接口信息以保證正確地完成數(shù)據(jù)解壓縮處理過程。如圖2B所示,本實施例在實施例一的步驟S140之后還可增加以下步驟:
S150、對所述壓縮數(shù)據(jù)添加接口信息,生成壓縮數(shù)據(jù)包。
圖2C提供了數(shù)據(jù)壓縮、解壓縮接口信息結(jié)構(gòu)圖,如圖2C所示,接口信 息可包括壓縮類型和原始字節(jié)數(shù)據(jù)的大小,示例性的,壓縮類型的定義可用0表示無壓縮,用1表示已壓縮。
在本實施例中,進一步對原始字節(jié)數(shù)據(jù)中存在連續(xù)遞增的字節(jié)數(shù)據(jù),以及原始字節(jié)數(shù)據(jù)中存在不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)進行數(shù)據(jù)壓縮,進一步降低了數(shù)據(jù)的冗余度,提高了數(shù)據(jù)傳輸效率;此外,通過對壓縮數(shù)據(jù)添加接口信息,可保證接收模塊正確地完成解壓縮處理過程。
實施例三
如圖3所示,本發(fā)明實施例提供數(shù)據(jù)解壓縮的方法,所述方法同樣可應用在圖1A所示的場景中。本實施例的數(shù)據(jù)解壓縮過程與本發(fā)明實施例一中的數(shù)據(jù)壓縮過程相對應,具體的是本發(fā)明實施例一中數(shù)據(jù)壓縮過程的逆過程,所以,本實施例的技術(shù)方案的執(zhí)行主體可以與實施例一相同或相對應。當無線節(jié)點110的接收模塊111或無線節(jié)點120的接收模塊122接收到對方無線節(jié)點發(fā)送過來的壓縮數(shù)據(jù)后,可使用數(shù)據(jù)解壓縮的方法進行解壓縮處理,然后把解壓縮后的數(shù)據(jù)交由本無線節(jié)點做后續(xù)處理。數(shù)據(jù)解壓縮的方法可包括以下步驟:
S310、掃描壓縮數(shù)據(jù)。
壓縮數(shù)據(jù)可以是原始字節(jié)數(shù)據(jù)通過實施例一中的數(shù)據(jù)壓縮方法進行壓縮后得到的數(shù)據(jù)。
S320、對所述壓縮數(shù)據(jù)的第n個字節(jié)數(shù)據(jù)進行壓縮邏輯判斷運算,獲取壓縮邏輯判斷值和壓縮邏輯,其中,n為大于等于1的自然數(shù)。
S330、根據(jù)所述壓縮邏輯判斷值和壓縮邏輯,對所述壓縮數(shù)據(jù)進行解壓縮和讀取。
示例性的,若所述壓縮邏輯判斷值等于第一預設(shè)值,則判斷所述壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù);對所述第n個字節(jié)數(shù)據(jù)進行第一邏輯個數(shù)運算,得到數(shù)據(jù)個數(shù)i,其中,i為大于等于2的自然數(shù),重復讀取i個所述壓縮數(shù)據(jù)的第n+1個字節(jié)數(shù)據(jù)。
例如,當?shù)趎個字節(jié)數(shù)據(jù)為0x83,第n+1個字節(jié)數(shù)據(jù)為0x05,壓縮邏輯判斷運算可以使用0xC0與所述第n個字節(jié)數(shù)據(jù)進行“或”運算;即0xC0|0x83=0x80,得到壓縮邏輯判斷值為0x80。在本實施例中,0x80可以是第一預設(shè)值,則判斷所述壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù);第一邏輯個數(shù)運算,可以是使用0x38與所述第n個字節(jié)數(shù)據(jù)進行“或”運算,則 可使用0x38|0x83=0x03得到數(shù)據(jù)個數(shù)3,重復讀取后續(xù)3個,第n+1個字節(jié)數(shù)據(jù)分別為0x05,0x05,0x05。
S340、判斷所述壓縮數(shù)據(jù)是否掃描完成。
若掃描完成,轉(zhuǎn)向步驟S350;若未掃描完成,則返回步驟S310繼續(xù)掃描。
S350、根據(jù)所述讀取的字節(jié)數(shù)據(jù),恢復原始字節(jié)數(shù)據(jù)。
示例性的,如步驟S330,原始字節(jié)數(shù)據(jù)可以是讀取的字節(jié)數(shù)據(jù)0x05,0x05,0x05。
在本實施例中,數(shù)據(jù)解壓縮過程是針對實施例一中的數(shù)據(jù)壓縮過程所進行的逆運算,通過壓縮邏輯判斷運算,獲取壓縮邏輯值,再通過壓縮邏輯值與第一預設(shè)值進行比較可確定出對應的數(shù)據(jù)壓縮的壓縮邏輯,數(shù)據(jù)解壓縮即是對數(shù)據(jù)壓縮的逆運算,從而可正確的恢復原始字節(jié)數(shù)據(jù),實現(xiàn)了無線通信網(wǎng)絡中傳輸數(shù)據(jù)的壓縮、解壓縮處理,達到了通過減少冗余數(shù)據(jù)的傳輸,提高了數(shù)據(jù)傳輸效率,間接地增加了無線通信網(wǎng)絡的帶寬資源利用率的技術(shù)效果。
實施例四
請參考圖4,其是本發(fā)明實施例提供的數(shù)據(jù)解壓縮和讀取的方法流程圖。本發(fā)明實施例在實施例三的步驟S330的基礎(chǔ)上,即在根據(jù)所述壓縮邏輯判斷值和壓縮邏輯,對所述壓縮數(shù)據(jù)進行解壓縮和讀取的基礎(chǔ)上,進一步提供了壓縮邏輯判斷值等于第二預設(shè)值,即壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在連續(xù)遞增的字節(jié)數(shù)據(jù);以及壓縮邏輯判斷值不等于第一預設(shè)值且不等于第二預設(shè)值,即壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)的情況下,對壓縮數(shù)據(jù)進行解壓縮和讀取的優(yōu)選實施方式。
如圖4所示,首先根據(jù)步驟S410,確定壓縮邏輯判斷值,若由步驟S4210,確定壓縮邏輯判斷值等于第二預設(shè)值,則由步驟S4211,可確定壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在連續(xù)遞增的字節(jié)數(shù)據(jù),進一步執(zhí)行步驟S4212,對壓縮數(shù)據(jù)的第n個字節(jié)數(shù)據(jù)進行第二邏輯個數(shù)運算,得到數(shù)據(jù)個數(shù)j,其中,j為大于等于2的自然數(shù);最后,根據(jù)步驟S4213,從所述壓縮數(shù)據(jù)的第n+1個字節(jié)數(shù)據(jù)開始,依次讀取j個字節(jié)數(shù)據(jù)。
其中,第二預設(shè)值可以是0xC0;第二邏輯個數(shù)運算,可以是使用0x38與所述第n個字節(jié)數(shù)據(jù)進行“或”運算。
若由步驟S4220,確定壓縮邏輯判斷值不等于第一預設(shè)值且不等于第二預 設(shè)值,則由步驟S4221,可確定壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù),進一步執(zhí)行步驟S4222,對壓縮數(shù)據(jù)的第n個字節(jié)數(shù)據(jù)進行第三邏輯個數(shù)運算,得到數(shù)據(jù)個數(shù)k,其中,k為大于等于2的自然數(shù);最后,根據(jù)步驟S4223,即從所述壓縮數(shù)據(jù)的第n+1個字節(jié)數(shù)據(jù)開始,依次讀取k個字節(jié)數(shù)據(jù)。
其中,第三邏輯個數(shù)運算,可以是使用0x00與所述第n個字節(jié)數(shù)據(jù)進行“或”運算。
最后根據(jù)步驟S430、獲取讀取的字節(jié)數(shù)據(jù),恢復原字節(jié)數(shù)據(jù)。
在本實施例中,進一步提供壓縮邏輯判斷值為第二預設(shè)值,即壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在連續(xù)遞增的字節(jié)數(shù)據(jù);以及壓縮邏輯判斷值不等于第一預設(shè)值且不等于第二預設(shè)值,即壓縮邏輯對應原始字節(jié)數(shù)據(jù)中存在不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)的數(shù)據(jù)解壓縮操作;從而可正確的恢復原始字節(jié)數(shù)據(jù),實現(xiàn)了無線通信網(wǎng)絡中傳輸數(shù)據(jù)的壓縮、解壓縮處理,達到了通過減少冗余數(shù)據(jù)的傳輸,提高了數(shù)據(jù)傳輸效率,間接地增加了無線通信網(wǎng)絡的帶寬資源利用率的技術(shù)效果。
以下為本發(fā)明實施例提供的數(shù)據(jù)壓縮、解壓縮的系統(tǒng)的實施例。數(shù)據(jù)壓縮、解壓縮的系統(tǒng)的實施例與上述數(shù)據(jù)壓縮、解壓縮的方法的實施例屬于同一構(gòu)思,數(shù)據(jù)壓縮、解壓縮的系統(tǒng)的實施例中未詳盡描述的細節(jié)內(nèi)容,可參考上述數(shù)據(jù)壓縮、解壓縮的方法的實施例。
實施例五
在本發(fā)明任意實施例技術(shù)方案的基礎(chǔ)上,如圖5所示,本發(fā)明實施例提供數(shù)據(jù)壓縮的系統(tǒng)510,所述系統(tǒng)510包括:原始字節(jié)數(shù)據(jù)掃描單元511,壓縮存儲單元512,第一判斷單元513和壓縮數(shù)據(jù)生成單元514。其中,
原始字節(jié)數(shù)據(jù)掃描單元511,用于掃描原始字節(jié)數(shù)據(jù);
壓縮存儲單元512,用于對所述原始字節(jié)數(shù)據(jù)進行壓縮和存儲;
第一判斷單元513,用于判斷所述原始字節(jié)數(shù)據(jù)是否掃描完成;
壓縮數(shù)據(jù)生成單元514,用于根據(jù)所述存儲的字節(jié)數(shù)據(jù),生成壓縮數(shù)據(jù)。
與現(xiàn)有技術(shù)中針對數(shù)據(jù)源進行數(shù)據(jù)壓縮的技術(shù)方案相比,本發(fā)明的技術(shù)方案可對傳輸數(shù)據(jù),例如無線通信網(wǎng)絡中不同無線節(jié)點之間傳輸?shù)拿襟w數(shù)據(jù)、測試數(shù)據(jù)和操作數(shù)據(jù)等進行數(shù)據(jù)壓縮。本技術(shù)方案以字節(jié)為單位,對具有一定冗 余度的傳輸數(shù)據(jù)進行數(shù)據(jù)壓縮時,能夠達到降低數(shù)據(jù)壓縮的復雜度和耗時的技術(shù)效果。以無線通信網(wǎng)絡為例,可以提高無線通信網(wǎng)絡中不同無線節(jié)點之間的數(shù)據(jù)傳輸效率,從而間接增加無線通信網(wǎng)絡的帶寬資源利用率的技術(shù)效果。
實施例六
在本發(fā)明任意實施例技術(shù)方案的基礎(chǔ)上,如圖6所示,本發(fā)明實施例提供數(shù)據(jù)解壓縮的系統(tǒng)610,所述系統(tǒng)610包括:壓縮數(shù)據(jù)掃描單元611,壓縮邏輯判斷值和壓縮邏輯獲取單元612,解壓縮讀取單元613,第二判斷單元614和原始字節(jié)數(shù)據(jù)恢復單元615。其中,
壓縮數(shù)據(jù)掃描單元611,用于掃描壓縮數(shù)據(jù);
壓縮邏輯判斷值和壓縮邏輯獲取單元612,用于對所述壓縮數(shù)據(jù)的第n個字節(jié)數(shù)據(jù)進行壓縮邏輯判斷運算,獲取壓縮邏輯判斷值和壓縮邏輯,其中,n為大于等于1的自然數(shù);
解壓縮讀取單元613,用于根據(jù)所述壓縮邏輯判斷值和所述壓縮邏輯,對所述壓縮數(shù)據(jù)進行解壓縮和讀??;
第二判斷單元614,用于判斷所述壓縮數(shù)據(jù)是否掃描完成;
原始字節(jié)數(shù)據(jù)恢復單元615,用于根據(jù)所述讀取的字節(jié)數(shù)據(jù),恢復原始字節(jié)數(shù)據(jù)。
在本實施例提供的技術(shù)方案,可以實現(xiàn)與數(shù)據(jù)壓縮對應的解壓縮,達到了通過減少冗余數(shù)據(jù)的傳輸,提高了數(shù)據(jù)傳輸效率,間接地增加了無線通信網(wǎng)絡的帶寬資源利用率的技術(shù)效果。
實施例七
在上述實施例的基礎(chǔ)上,本發(fā)明實施例進一步地提供一個數(shù)據(jù)壓縮、解壓縮的具體實施方式。
一、數(shù)據(jù)壓縮示例:
例如,原始字節(jié)數(shù)據(jù)為:0x00,0x00,0x00,0x01,0x02,0x03,0x05,0x05,0x05,0x07,0x09,0x03,0x05,共13個字節(jié)。
數(shù)據(jù)壓縮處理步驟如下:
第一步:掃描原始字節(jié)數(shù)據(jù),得出有3個連續(xù)相同的字節(jié)數(shù)據(jù)0x00,使用0x80|0x03=0x83,其中,“|”表示邏輯“或”運算,將0x83存儲為一個字節(jié)數(shù)據(jù),0x00存儲為另一個字節(jié)數(shù)據(jù),存儲的字節(jié)數(shù)據(jù)為0x83,0x00;
第二步:繼續(xù)掃描原始字節(jié)數(shù)據(jù),得出有3個連續(xù)遞增的字節(jié)數(shù)據(jù)0x01,0x02,0x03,使用0xC0|0x03=0xC3,將0xC3存儲為一個字節(jié)數(shù)據(jù),0x01存儲為另一個字節(jié)數(shù)據(jù),存儲的字節(jié)數(shù)據(jù)為0xC3,0x01;
第三步:繼續(xù)掃描原始字節(jié)數(shù)據(jù),得出有3個連續(xù)相同的字節(jié)數(shù)據(jù)0x05,0x05,0x05,使用0x80|0x03=0x83,將0x83存儲為一個字節(jié)數(shù)據(jù),0x05存儲為另一個字節(jié)數(shù)據(jù),存儲的字節(jié)數(shù)據(jù)為0x83,0x05;
第四步:繼續(xù)掃描原始字節(jié)數(shù)據(jù),得出有4個不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù),使用0x04存儲為一個字節(jié)數(shù)據(jù),0x07,0x09,0x03,0x05依次各存儲為另一個字節(jié)數(shù)據(jù),存儲后的字節(jié)數(shù)據(jù)依次為0x04,0x07,0x09,0x03,0x05,原始字節(jié)數(shù)據(jù)壓縮處理完畢,壓縮后共占用11個字節(jié)。
壓縮數(shù)據(jù)如下表1所示:
表1壓縮數(shù)據(jù)
二、數(shù)據(jù)解壓縮示例:
例如,壓縮數(shù)據(jù)為:0x83,0x00,0xC3,0x01,0x83,0x05,0x04,0x07,0x09,0x03,0x05,共11個字節(jié)。
數(shù)據(jù)解壓縮處理步驟如下:
第一步:從第一個字節(jié)數(shù)據(jù)開始掃描壓縮數(shù)據(jù),得出第一個字節(jié)數(shù)據(jù)為0x83,使用0x83|0xC0=0x80,其中,“|”表示邏輯“或”運算,根據(jù)0x80可判斷原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù)的情況,進一步使用0x83|0x38=0x03,然后讀取下一個字節(jié)數(shù)據(jù)0x00,表示有3個連續(xù)相同的字節(jié)數(shù)據(jù)0x00,重復讀取3個0x00,則讀取的字節(jié)數(shù)據(jù)為0x00,0x00,0x00;
第二步:繼續(xù)掃描壓縮數(shù)據(jù),得出字節(jié)數(shù)據(jù)為0xC3,使用0xC3|0xC0=0xC0,根據(jù)0xC0可判斷原始字節(jié)數(shù)據(jù)中存在連續(xù)遞增的字節(jié)數(shù)據(jù)的情況,進一步使用0xC3|0x38=0x03,然后從下一個字節(jié)數(shù)據(jù)0x01開始,表示有3個 從0x01開始連續(xù)遞增的字節(jié)數(shù)據(jù),依次讀取3個字節(jié)數(shù)據(jù),讀取的字節(jié)數(shù)據(jù)為0x01,0x02,0x03;
第三步:繼續(xù)掃描壓縮數(shù)據(jù),得出字節(jié)數(shù)據(jù)為0x83,使用0x83|0xC0=0x80,根據(jù)0x80可判斷原始字節(jié)數(shù)據(jù)中存在連續(xù)相同的字節(jié)數(shù)據(jù)的情況,進一步使用0x83|0x38=0x03,然后從下一個字節(jié)數(shù)據(jù)0x05開始,表示有3個連續(xù)相同的字節(jié)數(shù)據(jù)0x05,重復讀取3個0x05,讀取的字節(jié)數(shù)據(jù)為0x05,0x05,0x05;
第四步:繼續(xù)掃描壓縮數(shù)據(jù),得出字節(jié)數(shù)據(jù)為0x04,使用0x04|0x00=0x04,根據(jù)0x04可判斷原始字節(jié)數(shù)據(jù)中存在不連續(xù)相同且不連續(xù)遞增的字節(jié)數(shù)據(jù)的情況,然后從下一個字節(jié)數(shù)據(jù)0x07開始,依次讀取后面4個字節(jié)數(shù)據(jù),讀取的字節(jié)數(shù)據(jù)為0x07,0x09,0x03,0x05,壓縮數(shù)據(jù)解壓縮處理完畢,解壓縮后共占用13個字節(jié)。
解壓縮數(shù)據(jù)如下表2所示:
表2解壓縮數(shù)據(jù)
以上所述僅為本發(fā)明的優(yōu)選實施例,并不用于限制本發(fā)明,對于本領(lǐng)域技術(shù)人員而言,本發(fā)明在具體實施方式上可以有各種改動和變化。凡在本發(fā)明的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。