国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

DCS模擬量數(shù)據(jù)的分部壓縮方法

2013-03-16 06:19劉海濤
電子測試 2013年12期
關(guān)鍵詞:游程壓縮算法尾數(shù)

李 煥,劉海濤

(1.應(yīng)天職業(yè)技術(shù)學(xué)院機電工程系,江蘇南京210046;2.南京工程學(xué)院電力工程系,江蘇南京,210067;)

0 引言

與DCS接口中,串行通訊是常見的接口方式。為了提高通訊效率,需要對通訊的數(shù)據(jù)進行壓縮處理。

DCS模擬量的壓縮方法中,常用整數(shù)表示工程量,即將模擬量的按其量程線性化處理為兩字節(jié)正整數(shù)(0~65535),應(yīng)用時再轉(zhuǎn)換為工程量。這種方法由于要維護模擬量的量程表,不便于通信;另一類常用的壓縮方法是采用LZW等基于字典模型的壓縮算法。模擬量數(shù)據(jù)是以單精度浮點數(shù)存放的,數(shù)據(jù)的冗余度很小,傳統(tǒng)的壓縮處理方法的壓縮效果都不理想。

本文從模擬量在計算機中的表示方法入手,首先將模擬量預(yù)處理,再針對數(shù)據(jù)的不同部分采用不同的方法進行壓縮,最后將壓縮后數(shù)據(jù)組合起來。這樣既充分考慮到了數(shù)據(jù)的特點,又充分利用了壓縮方法的適應(yīng)性。

1 模擬量的表示方法及特點

1.1 模擬量的表示方法

DCS模擬量用單精度浮點數(shù)表示,占用4個字節(jié),可以精確到7位有效數(shù)字。按文獻[3]標(biāo)準(以下簡稱標(biāo)準)表示。設(shè)一個浮點數(shù)R,可使用三元組{S,E,M}來表示:S為符號位,用1位表示。S=0表示R為正數(shù),S=1表示R為負數(shù);E為指數(shù),用8bits表示。實際指數(shù)要經(jīng)E-127計算后得到;M為尾數(shù),用23bits表示。浮點數(shù)R為S×1.M E(1為隱含的一位尾數(shù),不在M中表示)。

1.2 模擬量的特點

數(shù)據(jù)壓縮需要信息有足夠的冗余度。以標(biāo)準表示的模擬量不利于壓縮。即便差值很小的數(shù)據(jù),在計算機中表示結(jié)果差別很大,如1234.5在計算機中用四字節(jié)表示為:68 154 80 0 ,而1234.6表示為:68 154 83 51,僅有符號位和指數(shù)位表示相同,尾數(shù)完全不同,這樣就造成了壓縮的難度。

現(xiàn)以200個模擬量數(shù)據(jù)為樣本分析其特點。樣本數(shù)據(jù)隨機產(chǎn)生,其范圍為[0.0,1000.0]。按照標(biāo)準存儲的數(shù)據(jù)從字符概率分布較平均,若用通用數(shù)據(jù)壓縮方法壓縮這些數(shù)據(jù),得不到很好的效果。

雖然浮點數(shù)的信息冗余度很小,但若用其表示DCS模擬量,仍有以下特點:

(1)各工程量數(shù)值多數(shù)大于零,因此標(biāo)準表示中,符號位S大多為零;

(2)各工程量的量程相差約為0.0001~10000倍,因此標(biāo)準表示中,指數(shù)差值約為-4~4;

(3)從數(shù)據(jù)精度考慮,工程量一般保留5位有效數(shù)字即可。因此標(biāo)準表示中,尾數(shù)部分有可壓縮的信息。

2 模擬量的預(yù)處理

模擬量預(yù)處理的目的是為了產(chǎn)生更多的冗余信息,獲得更好的壓縮效果。通信時一般將模擬量按測點表以自然順序排列。根據(jù)1.2節(jié)的分析可知,若將模擬量按其三元組順序排列,即:N個模擬量數(shù)據(jù),其自然排列順序為{S1,E1,M1}、{S2,E2,M2}、…、{SN,EN,MN},共占用4N字節(jié)。壓縮前將模擬量序列按字節(jié)重新排列為:S1S2…SNE1E2…ENM1M2…MN。因符號位S為1位,重新排列后將8個模擬量的符號位合并為1字節(jié)。故重新排列后N個模擬量共占用字節(jié)數(shù)為4N+N/8(+1)字節(jié)。(括號中+1字節(jié)表示N不是8的整數(shù)倍時總字節(jié)數(shù)+1)。

圖1(a)為樣本數(shù)據(jù)經(jīng)重新排列后字節(jié)分布情況??梢钥闯鰯?shù)據(jù)已呈現(xiàn)明顯的規(guī)律性:第一部分數(shù)據(jù)[1,25]為數(shù)據(jù)的符號,是樣本數(shù)據(jù)的符號。樣本數(shù)據(jù)均為正,因此由符號位構(gòu)成的這部分數(shù)據(jù)全為零;第二部分數(shù)據(jù)[26,225]為N個樣本數(shù)據(jù)的指數(shù),根據(jù)1.2節(jié)分析可知,各數(shù)據(jù)的指數(shù)差值大約在-4~4之間,故有較大的壓縮空間;最后一部分數(shù)據(jù)[226,825]為N個樣本的尾數(shù),呈隨機分布。

第一次預(yù)處理是數(shù)據(jù)無損的。考慮到DCS模擬量精度要求有5位有效數(shù)字即可。根據(jù)信息理論,1位十進制數(shù)可以精確表示log210≈3.32位二進制數(shù)。單精度浮點數(shù)表示模擬量時,4位二進制約可表示1位十進制。因此,在精度滿足DCS系統(tǒng)要求的情況下,可以減少一個字節(jié)尾數(shù)。第二次預(yù)處理將尾數(shù)的最低字節(jié)置零,進一步提高數(shù)據(jù)的冗余信息。圖1(b)為第二次預(yù)處理后的字節(jié)分布情況??梢钥闯?,相比第一次預(yù)處理,數(shù)據(jù)最后一部分[626,825]全為零,可以更好地被壓縮。

3 壓縮算法的選擇

3.1 壓縮算法選擇原則

壓縮算法要根據(jù)原始數(shù)據(jù)的特點以及對速度、性能的綜合要求來選擇。模擬量的壓縮應(yīng)用在數(shù)據(jù)通信中,對速度的要求較高。因此壓縮算法不能過于復(fù)雜,運算量要小。

從預(yù)處理后的樣本數(shù)據(jù)可以看出,每一部分數(shù)據(jù)的特點不同,因此選擇壓縮算法時應(yīng)針對不同特點的數(shù)據(jù)采用不同的壓縮算法來處理。第一部分數(shù)據(jù)(由符號位組成)為零(或絕大部分為零),可以采用游程編碼(Run Length Encoding);第二部分數(shù)據(jù)(由指數(shù)組成)數(shù)值間相差不大,可用差分編碼(Differential Encoding);第三部分數(shù)據(jù)(由部分尾數(shù)組成)隨機性較大,壓縮效果不明顯,因此不進行壓縮;第四部分數(shù)據(jù)(由最低字節(jié)尾數(shù)組成)均為零,可采用游程編碼。

圖1 預(yù)處理后字節(jié)分布Figure 1 The Bytes Distribution of Preprocessing

3.2 差分編碼

差分編碼又稱相關(guān)編碼。當(dāng)源數(shù)據(jù)之間差值不大時,用數(shù)據(jù)間的差值代替源數(shù)據(jù)序列。較小的差值可以用較少的位數(shù)表示。本文用4位二進制表示一個差值。

源數(shù)據(jù)中序列E1E2…EN為數(shù)據(jù)的指數(shù),其差值約在-4~4之間,用4位二進制表示此差值:最高位用來表示差值的符號,其余三位表示差值,-7保留。可表示的差值范圍為-6~+7;若差值大于此范圍,則不壓縮,用原碼輸出。為了區(qū)分是差值輸出還是原碼輸出,用保留的-7表示下一字節(jié)為原碼輸出。N字節(jié)源序列,若每一字節(jié)都可以用相鄰差值來表示,其理想壓縮比為1:(N/2+1)/ N=1:0.5+1/N。

圖2 差分編碼后字節(jié)分布Figure 2 The Bytes Distribution After Differential Encoding

圖2為樣本數(shù)據(jù)差分編碼壓縮后字節(jié)分布。可以看到,源數(shù)據(jù)中表示指數(shù)的部分已經(jīng)被有效壓縮。樣本數(shù)據(jù)由825字節(jié)壓縮到726字節(jié),實際壓縮率為88.0%。

3.3 游程編碼

游程編碼的思路是:若數(shù)據(jù)項d在源數(shù)據(jù)中連續(xù)出現(xiàn)n次(n稱為重復(fù)因子),則在輸出流中以nd代替n個重復(fù)項d。游程編碼也可能出現(xiàn)壓縮比大于1的情況。為了區(qū)分輸出項是重復(fù)因子還是被壓縮數(shù)據(jù),規(guī)定當(dāng)重復(fù)因子n≥3時,輸出ddd(n-3);n<3時,輸出n個d,即不壓縮輸出。另外重復(fù)因子3≤n≤255,若數(shù)據(jù)項d重復(fù)次數(shù)大于255,則要重新進行游程編碼。設(shè)源數(shù)據(jù)長度為N,包含M次重復(fù),每次重復(fù)平均長度L,則游程編碼壓縮比為1:(N-M×(L-4))/N。

樣本數(shù)據(jù)經(jīng)預(yù)處理后第一部分(由符號位組成)和第四部分(由最低位尾數(shù)組成)可以用游程編碼。這部分數(shù)據(jù)可以獲得很高的壓縮比。第一部分理想壓縮比為1:4/25=1:0.16;第四部分理想壓縮比為1:4/200=1:0.015。

圖3 游程編碼后字節(jié)分布Figure 3 The Bytes Distribution After RLE

圖3為經(jīng)游程編碼壓縮后的數(shù)據(jù)分布圖。由上一級差分編碼壓縮后的726字節(jié)壓縮至510字節(jié),實際壓縮比為1:0.70。

4 結(jié)論

200個樣本數(shù)據(jù)經(jīng)預(yù)處理,對一部分數(shù)據(jù)進行差分編碼、對另一部分數(shù)據(jù)進行游程編碼,最終有510個字節(jié)。因此綜合壓縮比為1:510/800≈1:0.64,節(jié)省約36%的空間。由于樣本數(shù)據(jù)的隨機性,因此可以推廣到一般情況。得到以下結(jié)論:

(1)分部壓縮方法可以獲得約1:0.64的壓縮比;

(2)分部壓縮方法為二級壓縮算法構(gòu)成。分別針對模擬量中不同信息類型的數(shù)據(jù)進行分部壓縮;

(3)差分編碼和游程編碼的算法的復(fù)雜度低,其時間復(fù)雜度和空間復(fù)雜度均為O(n),故算法效率很高。

(4)壓縮過程未涉及到數(shù)據(jù)的工程特性,因此算法可推廣至工業(yè)過程控制領(lǐng)域,具有一定的實用價值。

[1] 徐慧.實時數(shù)據(jù)庫中數(shù)據(jù)壓縮算法的研究[D].浙江:浙江大學(xué)信息學(xué)院,2006

[2] 拓廣忠,慕群.實時數(shù)據(jù)庫原理及其壓縮技術(shù)分析[J].華北電力技術(shù).2004(6):17-20

[3] 中國電子技術(shù)標(biāo)準化研究所,GB/T 17966-2000 微處理器系統(tǒng)的二進制浮點運算[S].北京:中國標(biāo)準出版社,2000

[4] David Salomon,數(shù)據(jù)壓縮原理與應(yīng)用(第二版)[M].吳樂南,譯.北京:電子工業(yè)出版社,2003

猜你喜歡
游程壓縮算法尾數(shù)
“改寫”與“省略”三不同
中國羽毛球組合鄭思維/黃雅瓊連續(xù)得失分規(guī)律研究
連續(xù)自然數(shù)及乘積的尾數(shù)和奇偶性的分析
基于參數(shù)識別的軌道電路監(jiān)測數(shù)據(jù)壓縮算法研究
2019年度下半年《啟迪與智慧》上下半月刊、《幽默與笑話》上下半月刊、《拳擊與格斗》上半月刊抽大獎中獎結(jié)果
改進型相對游程長度編碼方法
GF(3)上兩類廣義自縮序列的偽隨機性*
一種基于嵌入式實時操作系統(tǒng)Vxworks下的數(shù)據(jù)壓縮技術(shù)
RPT方法在多元游程檢驗中的應(yīng)用
有趣的九九乘法表