两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種數(shù)據(jù)壓縮及解壓縮的方法

文檔序號(hào):7545076閱讀:238來(lái)源:國(guó)知局
一種數(shù)據(jù)壓縮及解壓縮的方法
【專(zhuān)利摘要】一種數(shù)據(jù)壓縮及解壓縮的方法,涉及數(shù)據(jù)壓縮與解壓縮【技術(shù)領(lǐng)域】,特別是一種應(yīng)用于紅外碼信號(hào)的數(shù)據(jù)壓縮與解壓縮技術(shù)。其特征在于,數(shù)值特別大的元素,用雙字節(jié)存儲(chǔ),其中第一個(gè)字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí)位,第一字節(jié)的低六位與第二字節(jié)用來(lái)存放實(shí)際數(shù)值;數(shù)值為普通大小的元素,且有連續(xù)重復(fù)的特點(diǎn),用雙字節(jié)存儲(chǔ),第一個(gè)字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí),第一個(gè)字節(jié)的低六位為存放實(shí)際數(shù)值,第二個(gè)字節(jié)存放這個(gè)數(shù)值連續(xù)重復(fù)的次數(shù);數(shù)值為普通大小的元素,且不連續(xù)重復(fù),用單字節(jié)存儲(chǔ),字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí),字節(jié)的低六位為存放實(shí)際數(shù)值;所述的解壓縮過(guò)程為壓縮過(guò)程的逆運(yùn)算。具有對(duì)紅外碼信號(hào)數(shù)據(jù)壓縮高效、實(shí)現(xiàn)數(shù)據(jù)保密傳輸?shù)姆e極效果。
【專(zhuān)利說(shuō)明】一種數(shù)據(jù)壓縮及解壓縮的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)壓縮與解壓縮【技術(shù)領(lǐng)域】,特別是一種應(yīng)用于紅外碼信號(hào)的數(shù)據(jù)壓縮與解壓縮技術(shù)。
【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,各種數(shù)據(jù)量越來(lái)越大,為了能夠節(jié)省數(shù)據(jù)存儲(chǔ)與傳輸時(shí)所占用的時(shí)間及空間,需要對(duì)數(shù)據(jù)進(jìn)行壓縮;現(xiàn)階段的壓縮技術(shù),一般是對(duì)語(yǔ)音、視頻等文件進(jìn)行的壓縮,一般為無(wú)損壓縮,故難以實(shí)現(xiàn)壓縮的很小,壓縮后的文件跟未壓縮之前的大小沒(méi)有顯著差距,而且很難實(shí)現(xiàn)對(duì)紅外碼信號(hào)的壓縮,尤其是需要小數(shù)據(jù)包傳輸?shù)臅r(shí)候,現(xiàn)階段的壓縮技術(shù)很難滿(mǎn)足通訊的需求。

【發(fā)明內(nèi)容】

[0003]本發(fā)明的目的即在于提供一種數(shù)據(jù)壓縮及解壓縮的方法,以達(dá)到對(duì)紅外碼信號(hào)數(shù)據(jù)壓縮高效、無(wú)損失的目的。
[0004]本發(fā)明所公開(kāi)的一種數(shù)據(jù)壓縮及解壓縮的方法,其特征在于,所述的壓縮過(guò)程,包括如下步驟:
步驟1、數(shù)據(jù)處理:將連續(xù)變化的紅外輸入電平通過(guò)定時(shí)設(shè)備將其按時(shí)間量化為相應(yīng)的值,并將高電平與低電平的量化值按順序分別存入兩個(gè)數(shù)組中,且將各數(shù)組中數(shù)值特別大的元素標(biāo)出;
步驟2、將所有待壓縮元素適當(dāng)縮放,使普通大小元素的量化值至少小于64,然后求普通大小元素的平均值,并將數(shù)組中與平均值大小相近的元素歸一化為平均值;
步驟3、對(duì)于數(shù)值特別大的元素,使用雙字節(jié)存儲(chǔ),其中第一個(gè)字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí)位,第一字節(jié)的低六位與第二字節(jié)一起用來(lái)存放實(shí)際數(shù)值;
步驟4、對(duì)于數(shù)值為普通大小的元素,如果有連續(xù)重復(fù)的特點(diǎn),則用雙字節(jié)存儲(chǔ),第一個(gè)字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí),第一個(gè)字節(jié)的低六位為存放實(shí)際數(shù)值;第二個(gè)字節(jié)存放這個(gè)數(shù)值連續(xù)重復(fù)的次數(shù);
步驟5、對(duì)于數(shù)值為普通大小的元素,且不連續(xù)重復(fù),則用單字節(jié)存儲(chǔ),字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí),字節(jié)的低六位為存放實(shí)際數(shù)值。
[0005]所述的解壓縮過(guò)程為壓縮過(guò)程的逆運(yùn)算,包括如下步驟:
步驟1、根據(jù)每個(gè)數(shù)據(jù)單位第一個(gè)字節(jié)的最高兩位數(shù)值判斷是單字節(jié)數(shù)據(jù)單位還是雙字節(jié)數(shù)據(jù)單位;
步驟2、對(duì)于雙字節(jié)數(shù)據(jù)單位,則通過(guò)判斷第一個(gè)字節(jié)的高兩位來(lái)區(qū)分是特別大的數(shù)值,還是普通大小連續(xù)重復(fù)的數(shù)值;
步驟3、如果是雙字節(jié)數(shù)據(jù)單位,且是特別大的數(shù)值,則將第一個(gè)字節(jié)的低六位與256相乘,再加上第二個(gè)字節(jié)數(shù)值后存放到專(zhuān)門(mén)存放解壓后數(shù)據(jù)的數(shù)組中;
步驟4、如果是雙字節(jié)數(shù)據(jù)單位,且為普通大小連續(xù)重復(fù)的數(shù)值,則將其以第一個(gè)字節(jié)的低六位為母本,順次存放到專(zhuān)門(mén)存放解壓后數(shù)據(jù)的數(shù)組中,存放次數(shù)為第二個(gè)字節(jié)所表示的數(shù)值;
步驟5、如果是單字節(jié)數(shù)據(jù)單位,則直接將其順次存放到專(zhuān)門(mén)存放解壓后數(shù)據(jù)的數(shù)組中;且以上存放次序皆為順次存放,不可重復(fù)覆蓋已有的有效元素。
[0006]本技術(shù)不僅實(shí)現(xiàn)了數(shù)據(jù)容量的壓縮,同時(shí)也變相實(shí)現(xiàn)了通過(guò)壓縮及解壓縮對(duì)數(shù)據(jù)進(jìn)行加密解密的優(yōu)點(diǎn),通訊數(shù)據(jù)不會(huì)裸現(xiàn)在截獲數(shù)據(jù)的人面前,本技術(shù)優(yōu)點(diǎn)尤其體現(xiàn)在無(wú)線通訊等需要小數(shù)據(jù)包傳輸?shù)膱?chǎng)合,通過(guò)一定的算法實(shí)現(xiàn)了大數(shù)據(jù)包壓縮為小數(shù)據(jù)包的數(shù)據(jù)傳輸。具有對(duì)紅外碼信號(hào)數(shù)據(jù)壓縮高效、實(shí)現(xiàn)數(shù)據(jù)保密傳輸?shù)姆e極效果。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0007]附圖部分公開(kāi)了本發(fā)明的具體實(shí)施例,其中,
圖1、本發(fā)明壓縮過(guò)程的流程圖;
圖2、本發(fā)明解壓縮過(guò)程的流程圖。
【具體實(shí)施方式】
[0008]如圖1所示的實(shí)施例中,本發(fā)明所公開(kāi)的一種數(shù)據(jù)壓縮及解壓縮的方法,所述的壓縮過(guò)程,包括如下步驟:
1)、數(shù)據(jù)處理:
步驟1-1,將連續(xù)變化的紅外輸入電平通過(guò)定時(shí)設(shè)備將其按時(shí)間量化為相應(yīng)的值,并將高電平與低電平的量化值按順序分別存入兩個(gè)數(shù)組a,b中;
步驟1-2,分別將數(shù)組a,b中相對(duì)于數(shù)組中的其它元素而言數(shù)值特別大的元素標(biāo)出,使其不參與步驟1-4、步驟1-5中求平均值運(yùn)算;所述的數(shù)值特別大的元素是指大于其他元素的4倍及以上的元素;
步驟1-3,分別將數(shù)組a,b中的所有元素除以一個(gè)合適的數(shù)值,以使得除了步驟1-2中提到的數(shù)值特別大的元素外,其它普通高低電平按時(shí)間的量化值至少要小于64 般使其值在20-40之間;
步驟1-4,將數(shù)組a中縮放后的元素求平均值記為V_a,作為普通高電平信號(hào)的參考數(shù)
值;
步驟1-5,將數(shù)組b中縮放后的元素求平均值記為V_b,作為普通低電平信號(hào)的參考數(shù)
值;
步驟1-6,將數(shù)組a中數(shù)值與V_a大小相近的元素歸一化為V_a ;
步驟1-7,將數(shù)組b中數(shù)值與V_b大小相近的元素歸一化為V_b ;所述的大小相近的范圍根據(jù)實(shí)際情況而定;
2)、將a,b兩個(gè)數(shù)組中的元素分別壓縮:
步驟2-1,在數(shù)組a中尋找連續(xù)相同大小的元素及其出現(xiàn)的次數(shù),記為(ax、a_num);步驟2-2,在數(shù)組b中尋找連續(xù)相同大小的元素及其出現(xiàn)的次數(shù),記為(bx、b_num);步驟2-3,將數(shù)組a中的第一個(gè)元素axl作為基準(zhǔn),搜索其后與其數(shù)值相同的元素,直至找到第一個(gè)不同的元素NS時(shí),跳出此搜索過(guò)程,將找到的數(shù)值相同的元素個(gè)數(shù)存放在a_num這個(gè)變量中; 步驟2-4,此時(shí)判斷a_num是否等于I ;
步驟2-5,如果a_num等于1,則判斷axl數(shù)值是否大于160,如果大于160,則認(rèn)為是數(shù)值特別大的數(shù)據(jù),則將這個(gè)axl元素通過(guò)分別對(duì)256整除和求余操作拆分為H和L高低兩個(gè)字節(jié),將H與十六進(jìn)制數(shù)OxCO進(jìn)行位或運(yùn)算,將運(yùn)算結(jié)果存放到數(shù)組X中除X [O]之外的第一個(gè)空閑位置,之后再將L存放在緊隨H后的數(shù)組X的一個(gè)字節(jié)單元中;如果axl數(shù)值小于160,則直接將axl低8位與0x00進(jìn)行位與運(yùn)算后的值存放到數(shù)組x中除x[0]之外的第一個(gè)空閑位置;
步驟2-6,如果a_num大于I,則將axl的低8位與0x80進(jìn)行位或運(yùn)算,運(yùn)算結(jié)果存放到數(shù)組X中除x[0]之外的第一個(gè)空閑位置,將a_num的數(shù)值緊跟其后存放在數(shù)組x的下一個(gè)字節(jié)位置;
步驟2-7,繼續(xù)以步驟2-3中提到的不同元素NS為基準(zhǔn)尋找下一組與NS具有相同數(shù)值的元素,按照步驟2-1中的方法進(jìn)行預(yù)處理后,運(yùn)用步驟2-5、2-6中所述方法進(jìn)行壓縮,直至到將數(shù)組a中的元素全部處理完畢;
步驟2-8,壓縮的同時(shí)統(tǒng)計(jì)壓縮的數(shù)據(jù)單位個(gè)數(shù),并將其存放在數(shù)組X的第O個(gè)元素位置,數(shù)組b中元素的處理過(guò)程同上,只是將壓縮后的數(shù)值存放到另一個(gè)數(shù)組xb中。
[0009]如圖2所示的實(shí)施例中,本發(fā)明所公開(kāi)的一種數(shù)據(jù)解壓縮方法,包括如下步驟:步驟1、設(shè)置兩個(gè)無(wú)符號(hào)整型數(shù)組a和b,分別用來(lái)存放解壓縮后的高電平脈沖數(shù)值與低電平脈沖數(shù)值;
步驟2、用一個(gè)無(wú)符號(hào)字符型變量i標(biāo)示已經(jīng)讀取到待解壓縮數(shù)據(jù)數(shù)組的位置,并賦初值為I ;用一個(gè)無(wú)符號(hào)字符型變量j標(biāo)示解壓后的元素將分別存放在數(shù)組a,b中的位置,并賦初值為O ;設(shè)置一個(gè)無(wú)符號(hào)字符型變量Num,用于存放已經(jīng)解壓完成的數(shù)據(jù)單位,并賦初值為待解壓縮數(shù)組X的第一個(gè)元素,即x[0];
步驟3、取出待解壓縮數(shù)組X的第i個(gè)字節(jié),并將其與OxCO作位與操作,其結(jié)果暫記為type, type可能的數(shù)值分為以下幾種情況:
步驟3-1、當(dāng)type等于0x00時(shí),將待解壓數(shù)組x的第i個(gè)字節(jié)與0x3F作與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,保存到數(shù)組a中的j位置;
j增加1,以指向數(shù)組a中下一個(gè)空閑位置;i增加1,以指向待解壓數(shù)組X的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟4 ;
步驟3-2、當(dāng)type等于OxCO時(shí),將待解壓數(shù)組x的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,將X的第i個(gè)元素乘以256并加上第i+Ι個(gè)元素轉(zhuǎn)化為無(wú)符號(hào)整型元素,并保存到數(shù)組a中的j位置;
j增加1,以指向數(shù)組a中下一個(gè)空閑位置;i增加2,以指向待解壓數(shù)組X的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟4 ;
步驟3-3、當(dāng)type等于0x80時(shí),將待解壓數(shù)組x的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,將待解壓數(shù)組X的第i個(gè)元素保存到數(shù)組a中第j個(gè)元素位置,并在該元素后,以該元素為母本順次重復(fù)填充X [i+ι]-1次;j所指向的位置變?yōu)閖+x[x+l],以指向數(shù)組a中下一個(gè)空閑位置;i增加2,以指向下一個(gè)待解壓的元素單位位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟4 ;
步驟4、判斷Num是否等于0,如果等于0,則表示數(shù)據(jù)X中的元素已經(jīng)全部解壓完成,則繼續(xù)執(zhí)行步驟5 ;否則跳轉(zhuǎn)至步驟3,繼續(xù)判斷執(zhí)行解壓縮操作;
步驟5、開(kāi)始解壓縮數(shù)組xb中的數(shù)據(jù),將i重新賦初值1,j重新賦初值O,Num重新賦初值為xb [O];
步驟6、取出待解壓縮數(shù)組xb的第i個(gè)元素,并將其與OxCO作位與操作,其結(jié)果暫記為type, type可能的數(shù)值分為以下幾種情況:
步驟6-1、當(dāng)type等于0x00時(shí),將待解壓數(shù)組xb的第i個(gè)字節(jié)與0x3F作與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,保存到數(shù)組b中的j位置;
j增加1,以指向數(shù)組b中下一個(gè)空閑位置;i增加1,以指向待解壓數(shù)組X的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟7 ;
步驟6-2、當(dāng)type等于OxCO時(shí),將待解壓數(shù)組xb的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,將xb的第i個(gè)元素和i+Ι個(gè)元素通過(guò)x[i]*256+x[i+1]轉(zhuǎn)化為無(wú)符號(hào)整型元素,并保存到數(shù)組b中的j位置;
j增加1,以指向數(shù)組b中下一個(gè)空閑位置;i增加2,以指向待解壓數(shù)組xb的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟7 ;
步驟6-3、當(dāng)type等于0x80時(shí),將待解壓數(shù)組xb的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,將待解壓數(shù)組xb的第i個(gè)元素保存到數(shù)組b中第j個(gè)元素位置,并在該元素后,以該元素為母本順次重復(fù)填充X[i+ι]-1次;j所指向的位置變?yōu)閖+x[x+l],以指向數(shù)組b中下一個(gè)空閑位置;i增加2,以指向下一個(gè)待解壓的元素單位位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟7 ;
步驟7、判斷Num是否等于0,如果等于0,則表示數(shù)組xb中的元素已經(jīng)全部解壓完成,則繼續(xù)執(zhí)行步驟8 ;否則跳轉(zhuǎn)至步驟6,繼續(xù)判斷執(zhí)行解壓操作;
步驟8、將解壓后獲得的數(shù)組a,b分別按照到前面壓縮數(shù)據(jù)時(shí)所使用的縮放比例恢復(fù)到壓縮前數(shù)值范圍;解壓縮過(guò)程結(jié)束。
[0010]本技術(shù)成功實(shí)現(xiàn)了對(duì)紅外碼的信號(hào)的壓縮及解壓縮,將源文件壓縮到只有原來(lái)的1/5-1/7大小,且本技術(shù)可以實(shí)現(xiàn)對(duì)壓縮文件的自動(dòng)矯正,保持了數(shù)據(jù)的正確性。
【權(quán)利要求】
1.一種數(shù)據(jù)壓縮及解壓縮的方法,其特征在于,所述的壓縮過(guò)程,包括如下步驟: 步驟1、數(shù)據(jù)處理:將連續(xù)變化的紅外輸入電平通過(guò)定時(shí)設(shè)備將其按時(shí)間量化為相應(yīng)的值,并將高電平與低電平的量化值按順序分別存入兩個(gè)數(shù)組中,且將各數(shù)組中數(shù)值特別大的元素標(biāo)出; 步驟2、將所有待壓縮元素適當(dāng)縮放,使普通大小元素的量化值至少小于64,然后求普通大小元素的平均值,并將數(shù)組中與平均值大小相近的元素歸一化為平均值; 步驟3、對(duì)于數(shù)值特別大的元素,使用雙字節(jié)存儲(chǔ),其中第一個(gè)字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí)位,第一字節(jié)的低六位與第二字節(jié)一起用來(lái)存放實(shí)際數(shù)值; 步驟4、對(duì)于數(shù)值為普通大小的元素,如果有連續(xù)重復(fù)的特點(diǎn),則用雙字節(jié)存儲(chǔ),第一個(gè)字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí),第一個(gè)字節(jié)的低六位為存放實(shí)際數(shù)值;第二個(gè)字節(jié)存放這個(gè)數(shù)值連續(xù)重復(fù)的次數(shù); 步驟5、對(duì)于數(shù)值為普通大小的元素,且不連續(xù)重復(fù),則用單字節(jié)存儲(chǔ),字節(jié)的最高兩位為類(lèi)型標(biāo)識(shí),字節(jié)的低六位為存放實(shí)際數(shù)值; 所述的解壓縮過(guò)程為壓縮過(guò)程的逆運(yùn)算,包括如下步驟: 步驟1、通過(guò)每個(gè)數(shù)據(jù)單 位第一個(gè)字節(jié)的最高兩位判斷是單字節(jié)數(shù)據(jù)單位還是雙字節(jié)數(shù)據(jù)單位; 步驟2、對(duì)于雙字節(jié)數(shù)據(jù)單位,則通過(guò)判斷第一個(gè)字節(jié)的高兩位來(lái)區(qū)分是特別大的數(shù)值,還是普通的連續(xù)重復(fù)的數(shù)值; 步驟3、如果是雙字節(jié)數(shù)據(jù)單位,且是特別大的數(shù)值,則將第一個(gè)字節(jié)的低六位與256相乘,再加上第二個(gè)字節(jié)數(shù)值后存放到專(zhuān)門(mén)存放解壓后數(shù)據(jù)的數(shù)組中; 步驟4、如果是雙字節(jié)數(shù)據(jù)單位,且為普通連續(xù)重復(fù)的數(shù)值,則將其以第一個(gè)字節(jié)的低六位為母本,順次存放到專(zhuān)門(mén)存放解壓后數(shù)據(jù)的數(shù)組中,存放次數(shù)為第二個(gè)字節(jié)所表示的數(shù)值; 步驟5、如果是單字節(jié)數(shù)據(jù)單位,則直接將其順次存放到專(zhuān)門(mén)存放解壓后數(shù)據(jù)的數(shù)組中;且以上存放次序皆為順次存放,不可重復(fù)覆蓋已有的有效數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)壓縮及解壓縮的方法,其特征在于,所述的壓縮過(guò)程,包括如下步驟: I)、數(shù)據(jù)處理: 步驟1-1,將連續(xù)變化的紅外輸入電平通過(guò)定時(shí)設(shè)備將其按時(shí)間量化為相應(yīng)的值,并將高電平與低電平的量化值按順序分別存入兩個(gè)數(shù)組a,b中; 步驟1-2,分別將數(shù)組a,b中相對(duì)于數(shù)組中的其它元素而言數(shù)值特別大的元素標(biāo)出,使其不參與步驟1-4、步驟1-5中求平均值運(yùn)算; 步驟1-3,分別將數(shù)組a,b中的所有元素除以一個(gè)數(shù)值,以使得除了步驟1-2中提到的數(shù)值特別大的元素外,其它普通高低電平按時(shí)間的量化值小于64 ; 步驟1-4,將數(shù)組a中縮放后的元素求平均值記為V_a,作為普通高電平信號(hào)的參考數(shù)值; 步驟1-5,將數(shù)組b中縮放后的元素求平均值記為V_b,作為普通低電平信號(hào)的參考數(shù)值; 步驟1-6,將數(shù)組a中數(shù)值與V_a大小相近的元素歸一化為V_a ;步驟1-7,將數(shù)組b中數(shù)值與V_b大小相近的元素歸一化為V_b ; 2)、將a,b兩個(gè)數(shù)組中的元素分別壓縮:步驟2-1,在數(shù)組a中尋找連續(xù)相同大小的元素及其出現(xiàn)的次數(shù),記為(ax、a_num);步驟2-2,在數(shù)組b中尋找連續(xù)相同大小的元素及其出現(xiàn)的次數(shù),記為(bx、b_num);步驟2-3,將數(shù)組a中的第一個(gè)元素axl作為基準(zhǔn),搜索其后與其數(shù)值相同的元素,直至找到第一個(gè)不同的元素NS時(shí),跳出此搜索過(guò)程,將找到的數(shù)值相同的元素個(gè)數(shù)存放在a_num這個(gè)變量中; 步驟2-4,此時(shí)判斷a_num是否等于I ; 步驟2-5,如果a_num等于1,則判斷axl數(shù)值是否大于160,如果大于160,則認(rèn)為是數(shù)值特別大的數(shù)據(jù),則將這個(gè)axl元素通過(guò)分別對(duì)256整除和求余操作拆分為H和L高低兩個(gè)字節(jié),將H與十六進(jìn)制數(shù)OxCO進(jìn)行位或運(yùn)算,將運(yùn)算結(jié)果存放到數(shù)組X中除X [O]之外的第一個(gè)空閑位置,之后再將L存放在緊隨H后的數(shù)組X的一個(gè)字節(jié)單元中; 如果axl數(shù)值小于160,則直接將axl低8位與0x00進(jìn)行位與運(yùn)算后的值存放到數(shù)組X中除χ[0]之外的第一個(gè)空閑位置; 步驟2-6,如果a_num大于I,則將axl的低8位與0x80進(jìn)行位或運(yùn)算,運(yùn)算結(jié)果存放到數(shù)組X中除x[0]之外的第一個(gè)空閑位置,將a_num的數(shù)值緊跟其后存放在數(shù)組x的下一個(gè)字節(jié)位置; 步驟2-7,繼續(xù)以步驟2-3中提到的不同元素NS為基準(zhǔn)尋找下一組與NS具有相同數(shù)值的元素,按照步驟2-1中的方法進(jìn)行預(yù)處理后,運(yùn)用步驟2-5、2-6中所述方法進(jìn)行壓縮,直至到將數(shù)組a中的元素全部處理完畢; 步驟2-8,壓縮的同時(shí)統(tǒng)計(jì)壓縮的數(shù)據(jù)單位個(gè)數(shù),并將其存放在數(shù)組X的第O個(gè)元素位置,數(shù)組b中元素的處理過(guò)程同上,只是將壓縮后的數(shù)值存放到另一個(gè)數(shù)組Xb中。
3.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)壓縮及解壓縮的方法,其特征在于,所述的解壓縮方法,包括如下步驟: 步驟1、設(shè)置兩個(gè)無(wú)符號(hào)整型數(shù)組a和b,分別用來(lái)存放解壓縮后的高電平脈沖數(shù)值與低電平脈沖數(shù)值; 步驟2、用一個(gè)變量i標(biāo)示已經(jīng)讀取到待解壓縮數(shù)據(jù)數(shù)組的位置,并賦初值為I ;用一個(gè)變量j標(biāo)示解壓后的元素將分別存放在數(shù)組a,b中的位置,并賦初值為O ;設(shè)置一個(gè)無(wú)符號(hào)字符型變量Num,用于存放已經(jīng)解壓完成的數(shù)據(jù)單位,并賦初值為待解壓縮數(shù)組X的第一個(gè)元素,即x[0]; 步驟3、取出待解壓縮數(shù)組X的第i個(gè)字節(jié),并將其與OxCO作位與操作,其結(jié)果暫記為type ; 步驟3-1、當(dāng)type等于0x00時(shí),將待解壓數(shù)組x的第i個(gè)字節(jié)與0x3F作與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,保存到數(shù)組a中的j位置; j增加1,以指向數(shù)組a中下一個(gè)空閑位置;i增加1,以指向待解壓數(shù)組X的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟4 ; 步驟3-2、當(dāng)type 等于OxCO時(shí),將待解壓數(shù)組x的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,將X的第i個(gè)元素乘以256并加上第i+Ι個(gè)元素轉(zhuǎn)化為無(wú)符號(hào)整型元素,并保存到數(shù)組a中的j位置;j增加1,以指向數(shù)組a中下一個(gè)空閑位置;i增加2,以指向待解壓數(shù)組X的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟4 ; 步驟3-3、當(dāng)type等于0x80時(shí),將待解壓數(shù)組x的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,將待解壓數(shù)組X的第i個(gè)元素保存到數(shù)組a中第j個(gè)元素位置,并在該元素后,以該元素為母本順次重復(fù)填充X [i+ι]-1次;j所指向的位置變?yōu)閖+x[x+l],以指向數(shù)組a中下一個(gè)空閑位置;i增加2,以指向下一個(gè)待解壓的元素單位位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟4 ; 步驟4、判斷Num是否等于0,如果等于0,則表示數(shù)據(jù)X中的元素已經(jīng)全部解壓完成,則繼續(xù)執(zhí)行步驟5 ;否則跳轉(zhuǎn)至步驟3,繼續(xù)判斷執(zhí)行解壓操作; 步驟5、開(kāi)始解壓縮數(shù)組xb中的數(shù)據(jù),將i重新賦初值1,j重新賦初值0,Num重新賦初值為xb [O]; 步驟6、取出待解壓縮數(shù)組xb的第i個(gè)字節(jié),并將其與OxCO作位與操作,其結(jié)果暫記為type: 步驟6-1、當(dāng)type等于0x00時(shí),將待解壓數(shù)組xb的第i個(gè)字節(jié)與0x3F作與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,保存到數(shù)組b中的j位置; j增加1,以指向數(shù)組b中下一個(gè)空閑位置;i增加1,以指向待解壓數(shù)組xb的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟7 ; 步驟6-2、當(dāng)type等于OxCO時(shí),將待解壓數(shù)組xb的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的 數(shù)據(jù)后,將xb的第i個(gè)元素乘以256并加上第i+Ι個(gè)元素轉(zhuǎn)化為無(wú)符號(hào)整型元素,并保存到數(shù)組b中的j位置; j增加1,以指向數(shù)組b中下一個(gè)空閑位置;i增加2,以指向待解壓數(shù)組xb的下一個(gè)元素位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟7 ; 步驟6-3、當(dāng)type等于0x80時(shí),將待解壓數(shù)組xb的第i個(gè)元素與0x3F作位與運(yùn)算,屏蔽掉與type相關(guān)的數(shù)據(jù)后,將待解壓數(shù)組xb的第i個(gè)元素保存到數(shù)組b中第j個(gè)元素位置,并在該元素后,以該元素為母本順次重復(fù)填充X[i+ι]-1次;j所指向的位置變?yōu)閖+x[x+l],以指向數(shù)組b中下一個(gè)空閑位置;i增加2,以指向下一個(gè)待解壓的元素單位位置;Num減1,表示已完成了一個(gè)待解壓的數(shù)據(jù)單位;跳轉(zhuǎn)至步驟7 ; 步驟7、判斷Num是否等于0,如果等于0,則表示數(shù)組xb中的元素已經(jīng)全部解壓完成,則繼續(xù)執(zhí)行步驟8 ;否則跳轉(zhuǎn)至步驟6,繼續(xù)判斷執(zhí)行解壓操作; 步驟8、將解壓后獲得的數(shù)組a,b分別按照壓縮數(shù)據(jù)時(shí)所使用的縮放比例恢復(fù)到壓縮前數(shù)值范圍。
【文檔編號(hào)】H03M7/30GK103795421SQ201410065018
【公開(kāi)日】2014年5月14日 申請(qǐng)日期:2014年2月26日 優(yōu)先權(quán)日:2014年2月26日
【發(fā)明者】劉潤(rùn)滋, 宋玉興 申請(qǐng)人:活點(diǎn)信息技術(shù)有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乐平市| 都匀市| 弋阳县| 兴文县| 崇礼县| 涿州市| 同心县| 洪洞县| 新安县| 星子县| 岗巴县| 炉霍县| 阜新市| 如东县| 历史| 宝丰县| 镇宁| 揭西县| 缙云县| 峨山| 清水县| 福贡县| 镇宁| 淄博市| 循化| 兰考县| 淄博市| 醴陵市| 尼勒克县| 柳河县| 左贡县| 科技| 梁河县| 航空| 额敏县| 合江县| 克拉玛依市| 上思县| 崇礼县| 江油市| 依兰县|