日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

數(shù)據(jù)壓縮方法及裝置與流程

文檔序號:11205480閱讀:494來源:國知局
數(shù)據(jù)壓縮方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)壓縮領(lǐng)域,具體地,涉及一種數(shù)據(jù)壓縮方法及裝置。



背景技術(shù):

實體企業(yè)的工作空間使用或產(chǎn)生了海量的實時數(shù)據(jù),這些實時數(shù)據(jù)的讀寫和特征分析效率關(guān)系著生產(chǎn)運維決策的制定和執(zhí)行的效率,尤其在即將到來的“工業(yè)4.0”或《中國制造2025》時代,海量數(shù)據(jù)的處理將越發(fā)重要。

在目前的存儲、讀寫、搜索架構(gòu)中,實時數(shù)據(jù)并需要全部保存,因此,可以通過有損數(shù)據(jù)壓縮算法來對實時數(shù)據(jù)進行處理,現(xiàn)有技術(shù)中使用的有損數(shù)據(jù)壓縮算法例如可以是死區(qū)壓縮算法、pi的旋轉(zhuǎn)門壓縮算法及其擴展等算法,這些數(shù)據(jù)壓縮算法兼顧了特征數(shù)據(jù)覆蓋率、計算和存儲性能,在工業(yè)界具有廣泛的應(yīng)用。

圖1示出了死區(qū)壓縮算法的原理示意圖。死區(qū)壓縮算法工作在一維線型空間中,如圖1所示,在時間點-數(shù)據(jù)值的坐標中,比對當(dāng)前數(shù)據(jù)和上一個保存的數(shù)據(jù)的偏差是否位于預(yù)先設(shè)定好的變化區(qū)間內(nèi),即死區(qū)范圍內(nèi),若是則將當(dāng)前數(shù)據(jù)確定為舍棄點并將其過濾掉,否則將當(dāng)前數(shù)據(jù)確定為保存點并將其保存,新的保存點與先前保存點之間的數(shù)據(jù)偏移超過預(yù)先設(shè)定好的變化區(qū)間。在確定出新的保存點之后,根據(jù)該新的保存點來確定位于該新的保存點之后的數(shù)據(jù)點是保存還是舍棄。死區(qū)壓縮算法適用于波動穩(wěn)定的數(shù)據(jù)壓縮,不適用于總是沿一個方向波動的數(shù)據(jù)壓縮。

圖2示出了pi的旋轉(zhuǎn)門壓縮算法的原理示意圖。pi的旋轉(zhuǎn)門壓縮算法工作在二維線型空間中,如圖2所示,在時間點-數(shù)據(jù)值的坐標中,使用上一個保存點a和當(dāng)前的數(shù)據(jù)點b畫一條線段ab,并按照設(shè)定的偏差將此線段在垂直方向上向上向下移動,進而擴展出一個二維數(shù)據(jù)空間1。選擇上一個保存點a和當(dāng)前的數(shù)據(jù)點b的下一個數(shù)據(jù)點c繼續(xù)上述過程,擴展出一個二維數(shù)據(jù)空間2。如果后一個二維數(shù)據(jù)空間2能包含位于上一個保存點a和下一個數(shù)據(jù)點c之間的所有數(shù)據(jù)點,則判斷數(shù)據(jù)點c之前的數(shù)據(jù)點b為舍棄點,否則判斷據(jù)點c之前的數(shù)據(jù)點b為保存點。繼續(xù)上述的判斷過程,可以判斷出圖2中,二維數(shù)據(jù)空間3能夠包含保存點a與數(shù)據(jù)點d之間的所有數(shù)據(jù)點(數(shù)據(jù)點b和數(shù)據(jù)點c),則數(shù)據(jù)點d的前一數(shù)據(jù)點c為舍棄點。二維數(shù)據(jù)空間4并不能夠包含保存點a與數(shù)據(jù)點e之間的所有數(shù)據(jù)點(數(shù)據(jù)點b、數(shù)據(jù)點c和數(shù)據(jù)點d),則數(shù)據(jù)點e的前一數(shù)據(jù)點d為保存點。然后根據(jù)保存點d來對保存點d之后的數(shù)據(jù)點繼續(xù)上述的判斷過程。pi的旋轉(zhuǎn)門壓縮算法適用于慢變化的數(shù)據(jù)。

從上述對死區(qū)壓縮算法、pi的旋轉(zhuǎn)門壓縮算法的描述中可知,現(xiàn)有技術(shù)進行數(shù)據(jù)壓縮時,均采取一刀切的方式,即根據(jù)數(shù)據(jù)點在一條邊界線的內(nèi)側(cè)還是外側(cè)、數(shù)據(jù)點在一個邊界四邊形的內(nèi)側(cè)還是外側(cè),來決定舍棄或保存數(shù)據(jù),本質(zhì)上都是檢查數(shù)據(jù)點的數(shù)據(jù)值是否在純?nèi)藶樵O(shè)定的上限或下限之間來決定舍棄或保存。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例的目的是提供一種數(shù)據(jù)壓縮方法及裝置,以解決或至少部分解決上述技術(shù)問題。

為了實現(xiàn)上述目的,本發(fā)明實施例提供一種數(shù)據(jù)壓縮方法,該方法包括:將采集的數(shù)據(jù)的采集時間和數(shù)據(jù)值映射為時間-數(shù)據(jù)值的坐標系中的數(shù)據(jù)點;根據(jù)指定為起始點的已保存的數(shù)據(jù)點確定在采集時間上位于該已保存的數(shù)據(jù)點之后的下一個要被保存的數(shù)據(jù)點;將確定的要被保存的數(shù)據(jù)點重新指定為起始點并根據(jù)該重新指定的起始點確定在采集時間上位于該重新指定的起始點之后的下一個要被保存的數(shù)據(jù)點,直到確定出所述數(shù)據(jù)點中所有要被保存的數(shù)據(jù)點;以及保存被確定要被保存的數(shù)據(jù)點;其中,確定下一個要被保存的數(shù)據(jù)點包括:按照采集時間的順序依次判斷所述起始點之后的數(shù)據(jù)點是否滿足當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值;如果所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值,則將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定為下一個要被保存的數(shù)據(jù)點。

可選地,所述按照采集時間的順序依次判斷所述起始點之后的數(shù)據(jù)點是否滿足當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值包括:針對所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的所有數(shù)據(jù)點中的每一個數(shù)據(jù)點,以該每一個數(shù)據(jù)點的坐標為圓心、以所述預(yù)定義值為半徑建立針對所述每一個數(shù)據(jù)點的圓;判斷所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段是否與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離;在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離的情況下,確定所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值;以及在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的每一個圓均不相離的情況下,確定所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間不存在數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值。

可選地,所述判斷所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段是否與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離包括:根據(jù)所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段方程和針對所述每一個數(shù)據(jù)點的圓中的每一個圓的方程來判斷所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段是否與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離。

可選地,所述確定下一個要被保存的數(shù)據(jù)點還包括:如果所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間不存在數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值,則將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定舍棄點。

可選地,所述預(yù)定義值為2。

相應(yīng)地,本發(fā)明實施例還提供一種數(shù)據(jù)壓縮裝置,所述裝置包括:映射模塊,用于將采集的數(shù)據(jù)的采集時間和數(shù)據(jù)值映射為時間-數(shù)據(jù)值的坐標系中的數(shù)據(jù)點;第一確定模塊,用于根據(jù)指定為起始點的已保存的數(shù)據(jù)點確定在采集時間上位于該已保存的數(shù)據(jù)點之后的下一個要被保存的數(shù)據(jù)點;第二確定模塊,用于將確定的要被保存的數(shù)據(jù)點重新指定為起始點并根據(jù)該重新指定的起始點確定在采集時間上位于該重新指定的起始點之后的下一個要被保存的數(shù)據(jù)點,直到確定出所述數(shù)據(jù)點中所有要被保存的數(shù)據(jù)點;以及保存模塊,用于保存被確定要被保存的數(shù)據(jù)點;其中,所述第一確定模塊包括:判斷單元,用于按照采集時間的順序依次判斷所述起始點之后的數(shù)據(jù)點是否滿足當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值;確定單元,用于如果所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值,則將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定為下一個要被保存的數(shù)據(jù)點。

可選地,所述判斷單元包括:圓建立子單元,用于對所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的所有數(shù)據(jù)點中的每一個數(shù)據(jù)點,以該每一個數(shù)據(jù)點的坐標為圓心、以所述預(yù)定義值為半徑建立針對所述每一個數(shù)據(jù)點的圓;判斷子單元,用于判斷所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段是否與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離;確定子單元,用于:在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離的情況下,確定所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值;以及在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的每一個圓均不相離的情況下,確定所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間不存在數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值。

可選地,所述判斷子單元用于根據(jù)所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段方程和針對所述每一個數(shù)據(jù)點的圓中的每一個圓的方程來判斷所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段是否與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離。

可選地,所述確定單元還用于如果所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間不存在數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值,則將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定舍棄點。

可選地,所述預(yù)定義值為2。

相應(yīng)地,本發(fā)明實施例還提供一種機器可讀存儲介質(zhì),該機器可讀存儲介質(zhì)上存儲有指令,該指令用于使得機器執(zhí)行上述的數(shù)據(jù)壓縮方法。

通過上述技術(shù)方案,能夠?qū)崿F(xiàn)壓縮后的相鄰數(shù)據(jù)點的數(shù)據(jù)特征盡量不重復(fù),從而可以在數(shù)據(jù)壓縮率和數(shù)據(jù)特征覆蓋率之間取得很好的平衡。

本發(fā)明實施例的其它特征和優(yōu)點將在隨后的具體實施方式部分予以詳細說明。

附圖說明

附圖是用來提供對本發(fā)明實施例的進一步理解,并且構(gòu)成說明書的一部分,與下面的具體實施方式一起用于解釋本發(fā)明實施例,但并不構(gòu)成對本發(fā)明實施例的限制。在附圖中:

圖1示出了死區(qū)壓縮算法的原理示意圖;

圖2示出了pi的旋轉(zhuǎn)門壓縮算法的原理示意圖;

圖3示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮方法的流程示意圖;

圖4示出了根據(jù)本發(fā)明又一實施例的數(shù)據(jù)壓縮方法的流程示意圖;

圖5示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮方法的原理示意圖;

圖6示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮方法的計算示意圖;

圖7示出了本發(fā)明實施例提供的數(shù)據(jù)壓縮算法的應(yīng)用示意圖;以及

圖8示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮裝置的結(jié)構(gòu)框圖。

具體實施方式

以下結(jié)合附圖對本發(fā)明實施例的具體實施方式進行詳細說明。應(yīng)當(dāng)理解的是,此處所描述的具體實施方式僅用于說明和解釋本發(fā)明實施例,并不用于限制本發(fā)明實施例。

圖3示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮方法的流程示意圖。如圖3所示,本發(fā)明實施例提供一種數(shù)據(jù)壓縮方法,該方法可以包括以下步驟:

步驟s31,將采集的數(shù)據(jù)的采集時間和數(shù)據(jù)值映射為時間-數(shù)據(jù)值的坐標系中的數(shù)據(jù)點。

具體地,可以首先定義橫軸代表時間、縱軸代表數(shù)據(jù)值的坐標系。該坐標系例如可以以(0,0)為原點,或者可以根據(jù)需要以任意一點作為坐標原點。然后再將采集的數(shù)據(jù)的采集時間和數(shù)據(jù)值映射為所述坐標系中的數(shù)據(jù)點。這樣,所采集的每一個數(shù)據(jù)在所述坐標系中均唯一的對應(yīng)一個數(shù)據(jù)點。

步驟s32,根據(jù)指定為起始點的已保存的數(shù)據(jù)點確定在采集時間上位于該已保存的數(shù)據(jù)點之后的下一個要被保存的數(shù)據(jù)點。

具體地,確定下一個要保存的數(shù)據(jù)點可以包括:按照采集時間的順序依次判斷所述起始點之后的數(shù)據(jù)點是否滿足當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值;如果所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值,則將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定為下一個要被保存的數(shù)據(jù)點。

在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值的情況下,說明當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點與相鄰數(shù)據(jù)點的數(shù)據(jù)特征不同,需要保存,因此可以將該當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定為保存點。

如果所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間不存在數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值,說明當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點與相鄰數(shù)據(jù)點的數(shù)據(jù)特征相似,可以不保存,因此可以將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定舍棄點。

其中,可以在所述坐標系中確定所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的方程,然后根據(jù)點到直線之間的距離公式來計算數(shù)據(jù)點到線段之間的距離。

可選地,所述預(yù)定義值可以根據(jù)實際需要進行設(shè)置,例如所述預(yù)定義值可以設(shè)置為2。

可選地,可以將所采集的數(shù)據(jù)中的第一個數(shù)據(jù)確定為要保存的數(shù)據(jù),則該要保存的數(shù)據(jù)所映射的數(shù)據(jù)點就是已保存的數(shù)據(jù)點。

步驟s33,將確定的要被保存的數(shù)據(jù)點重新指定為起始點并根據(jù)該重新指定的起始點確定在采集時間上位于該重新指定的起始點之后的下一個要被保存的數(shù)據(jù)點,直到確定出所述數(shù)據(jù)點中所有要被保存的數(shù)據(jù)點。

采用步驟s32中的具體執(zhí)行方式繼續(xù)確定下一個要保存的數(shù)據(jù)點,直到確定出所述數(shù)據(jù)點中所有要被保存的數(shù)據(jù)點。

步驟s34,保存被確定要被保存的數(shù)據(jù)點。

在確定出所有要保存的數(shù)據(jù)點后,可以將確定為要保存的數(shù)據(jù)點保存,將確定為舍棄點的數(shù)據(jù)點舍棄??蛇x地,可以將要保存的數(shù)據(jù)點逆映射為所采集的數(shù)據(jù),然后再進行保存。

本發(fā)明實施例提供的數(shù)據(jù)壓縮方法可以實現(xiàn)壓縮后的相鄰數(shù)據(jù)點的數(shù)據(jù)特征盡量不重復(fù),從而可以在數(shù)據(jù)壓縮率和數(shù)據(jù)特征覆蓋率之間取得很好的平衡。

基于圖3所示的實施例,上述步驟s32可以進一步包括以下步驟:

步驟s321,針對所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的所有數(shù)據(jù)點中的每一個數(shù)據(jù)點,以該每一個數(shù)據(jù)點的坐標為圓心、以所述預(yù)定義值為半徑建立針對所述每一個數(shù)據(jù)點的圓。

可選地,在執(zhí)行上述步驟s32時,可以針對每一個數(shù)據(jù)點以該每一個數(shù)據(jù)點的坐標為圓心、預(yù)定義值為半徑計算建立針對每一數(shù)據(jù)點的圓,例如,可以在所述坐標系中,通過計算圓的直角坐標方程來實現(xiàn)建立針對每一數(shù)據(jù)點的圓。

步驟s322,判斷所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段是否與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離。

在平面中,線段與圓的位置關(guān)系可以是相離、相切或相交。

可選地,在步驟s322中可以根據(jù)所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段方程和針對所述每一個數(shù)據(jù)點的圓中的每一個圓的方程來判斷所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段是否與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離。具體地,可以在坐標系中根據(jù)當(dāng)前被考慮的數(shù)據(jù)點的坐標和起始點的坐標計算當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的方程,然后將該線段的方程分別帶入上述的每一數(shù)據(jù)點的圓的方程中從而得到一個一元二次方程,通過解該一元二次方程來判斷所述位置關(guān)系,在該一元二次方程無實數(shù)解的情況下,確定參考線段與圓相離,說明圓對應(yīng)的數(shù)據(jù)點到所述線段的距離大于預(yù)定義值,否則,確定線段與圓不相離,也就是說數(shù)據(jù)點到所述線段的距離不大于所述預(yù)定義值。

步驟s323,在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離的情況下,確定所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值。

另一方面,在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的至少一個圓相離的情況下,說明當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點與相鄰數(shù)據(jù)點的數(shù)據(jù)特征不同,需要保存,因此可以將該當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定為保存點。

步驟s324,在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的每一個圓均不相離的情況下,確定所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間不存在數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值。

另一方面,在所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的每一個圓均不相離的情況下,說明當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點與相鄰數(shù)據(jù)點的數(shù)據(jù)特征相似,可以不保存,因此可以將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定舍棄點。

本發(fā)明實施例中,根據(jù)映射到坐標系中的兩個數(shù)據(jù)點之間的線段與所述起始點之間的線段與針對所述每一個數(shù)據(jù)點的圓中的每一個圓(以這個數(shù)據(jù)點作為圓心,通過擴大樣本容量而擴展出的一個圓)之間的位置關(guān)系(相離、相切或相交)來判斷當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點是否符合其相鄰數(shù)據(jù)點的特征,實現(xiàn)壓縮后的相鄰數(shù)據(jù)點的數(shù)據(jù)特征盡量不重復(fù),從而能夠在數(shù)據(jù)壓損率和數(shù)據(jù)特征覆蓋率上取得了一個很好的平衡。

圖5示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮方法的原理示意圖。在圖5所示的直角坐標中,原點為0,橫軸代表數(shù)據(jù)點的采集時間,縱軸代表數(shù)據(jù)點的數(shù)值,實時數(shù)據(jù)值隨著橫軸上的采集時間而在縱軸上波動。圖5中以6個數(shù)據(jù)采集點在坐標系中映射的數(shù)據(jù)點a至數(shù)據(jù)點f這6個數(shù)據(jù)點為例來對本發(fā)明實施例提供的數(shù)據(jù)壓縮算法的原理進行進一步說明,其中所述6個數(shù)據(jù)點中a點是已知保存點。

參考圖5,可以通過以下步驟來對本發(fā)明實施例提供的數(shù)據(jù)壓縮算法的原理進行說明:

步驟s51,以每個數(shù)據(jù)點為圓心,以預(yù)定義值為半徑分別建立圓針對數(shù)據(jù)點a至數(shù)據(jù)點f的圓。

步驟s52,從已知保存點a出發(fā),向下一個數(shù)據(jù)點b連線,形成線段ab。

步驟s53,從已知保存點a出發(fā),繼續(xù)向數(shù)據(jù)點b的下一個數(shù)據(jù)點c連線,形成線段ac。

步驟s54,判斷線段ac與已知保存點a和數(shù)據(jù)點c之間的數(shù)據(jù)點b的圓的位置關(guān)系,如果線段ac與數(shù)據(jù)點b的圓相離,則數(shù)據(jù)點b是保存點,否則,數(shù)據(jù)點b是舍棄點,從圖5中可以看出,線段ac與數(shù)據(jù)點b的圓不相離,因此,可以確定數(shù)據(jù)點b是舍棄點。

已知保存點a和數(shù)據(jù)點c之間的所有圓(數(shù)據(jù)點b的圓)相離,則當(dāng)前點(數(shù)據(jù)點c)的前一個點(數(shù)據(jù)點b)需要被保存,否則從已知保存點a繼續(xù)向下一個點(數(shù)據(jù)點d)連線重復(fù)此過程(從數(shù)據(jù)點a出發(fā)繼續(xù)向數(shù)據(jù)點d連線,即線段ad。如果線段ad和數(shù)據(jù)點b的圓、數(shù)據(jù)點c的圓其中的任一相離,則數(shù)據(jù)點d的前一個數(shù)據(jù)點點即數(shù)據(jù)點c需要被保存,否則繼續(xù)從已知保存點a向下一個數(shù)據(jù)點e連線段來重復(fù)這一過程)。

步驟s55,從已知保存點a繼續(xù)向數(shù)據(jù)點c的下一個數(shù)據(jù)點d連線形成線段ad,并重復(fù)步驟s54的過程,確定線段ad與已知保存點a和數(shù)據(jù)點d之間的所有圓(數(shù)據(jù)點b和數(shù)據(jù)點c的圓)之間的位置關(guān)系。從圖5中可知,線段ad與數(shù)據(jù)點b的圓相交而非相離,并且于數(shù)據(jù)點c的圓也相交而非相離,從而可以確定出數(shù)據(jù)點d的前一數(shù)據(jù)點c是舍棄點。

步驟s56,重復(fù)步驟s54的過程,從圖5中可以確定,線段ae與數(shù)據(jù)點b的圓和與數(shù)據(jù)點c的圓均不相離,但是線段ae與數(shù)據(jù)點d的圓相離,則說明數(shù)據(jù)點d的數(shù)據(jù)特征不同于相鄰數(shù)據(jù)點的數(shù)據(jù)特征,因此,可以確定出數(shù)據(jù)點d為保存點。

步驟s57,從新保存的點(數(shù)據(jù)點d)出發(fā),重復(fù)上面的步驟s51至步驟s56。

使用上述步驟一致迭代下去,就能根據(jù)數(shù)據(jù)點的采集順序的先后確定出每一數(shù)據(jù)點是保存點還是舍棄點。

圖6示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮方法的計算示意圖。在圖6所示的直角坐標中,原點為0,橫軸代表數(shù)據(jù)點的采集時間。在該實施例中預(yù)先設(shè)定的半徑值為2,圖6中數(shù)據(jù)點a為已知保存點,其是以確定下一個保存點為例說明數(shù)據(jù)壓縮方法的計算過程,具體地,本發(fā)明實施例提供的數(shù)據(jù)壓縮方法可以包括以下計算步驟:

步驟s61,確定數(shù)據(jù)點b的圓的方程:(x-10)2+(y-6)2=22,即x2+y2-20×x-12×y-4=0,其中x屬于[8,12]。

步驟s62,確定線段ac的方程:

設(shè)線段ac的方程為y=kx+b,根據(jù)下面兩個等式:

4=b,

11=k×20+b,

可知線段ac的方程為y=0.35×x+4,其中x屬于[0,20]。

步驟s63,判斷線段ac是否和圓b相交:

將線段ac的方程帶入數(shù)據(jù)點b的圓的方程,整理可得以下一元二次方程:

1.1225x2-21.4x-36=0,

一元二次方程的判別式為:(-21.4)×(-21.4)-4×1.1225×(-36)=619.6,該判別式大于0,所以可知線段ac與數(shù)據(jù)點b的圓相交。

步驟s64,繼續(xù)執(zhí)行步驟s61至步驟s63可知,線段ad和數(shù)據(jù)點b的圓、數(shù)據(jù)點c的圓都相交,線段ae和數(shù)據(jù)點d的圓相離,可知數(shù)據(jù)點d的數(shù)據(jù)特征與數(shù)據(jù)點b、c、e不同,所以數(shù)據(jù)點d為保存點。

根據(jù)保存d繼續(xù)上面的判斷過程,從而確定數(shù)據(jù)點d之后的下一保存點。使用上述步驟一致迭代下去,就能根據(jù)數(shù)據(jù)點的采集順序的先后確定出每一數(shù)據(jù)點是保存點還是舍棄點。

圖7示出了本發(fā)明實施例提供的數(shù)據(jù)壓縮算法的應(yīng)用示意圖。本本發(fā)明實施例提供的數(shù)據(jù)壓縮方法已經(jīng)在神華國神集團的數(shù)據(jù)采集項目中實施,在生產(chǎn)指揮中心部署的采集器中運行,用于安全監(jiān)測實時數(shù)據(jù)和人員定位實時數(shù)據(jù)的數(shù)據(jù)壓縮。目前,采集器運行穩(wěn)定,數(shù)據(jù)壓縮性能良好,根據(jù)各個測點的數(shù)據(jù)特征分別設(shè)置各個測點的數(shù)據(jù)變化量后,各個測點的數(shù)據(jù)特征能成功提取。

在實施過程中,合理劃分各個模塊,模塊間應(yīng)用生產(chǎn)者-消費者模式,實現(xiàn)了模塊間低耦合,模塊內(nèi)高內(nèi)聚,其中所劃分的各模塊分別是數(shù)據(jù)獲取模塊、數(shù)據(jù)映射模塊、數(shù)據(jù)壓縮模塊、數(shù)據(jù)規(guī)約模塊、數(shù)據(jù)發(fā)送模塊以及數(shù)據(jù)緩存模塊。圖7中隊列q1至隊列q4均為時間優(yōu)先的優(yōu)先級隊列。參考圖7,各個模塊具體實施方式如下:

數(shù)據(jù)獲取模塊,用于將從各種數(shù)據(jù)源獲取到的實時數(shù)據(jù)分別放入到隊列q1中。

數(shù)據(jù)映射模塊,用于從隊列q1中拉取數(shù)據(jù),將原生實時數(shù)據(jù)映射成按測點分類的實時數(shù)據(jù),并分別放入隊列q2中。

數(shù)據(jù)壓縮模塊,用于從隊列q2中拉取數(shù)據(jù),按照本發(fā)明實施例提供的數(shù)據(jù)壓縮方法壓縮實時數(shù)據(jù),并將壓縮后的實時數(shù)據(jù)分別放入隊列q3中。

數(shù)據(jù)規(guī)約模塊,用于從隊列q3中拉取數(shù)據(jù),執(zhí)行數(shù)據(jù)映射的逆過程,即數(shù)據(jù)規(guī)約,獲得按時間點分類的分批實時數(shù)據(jù)并將其放入隊列q4中。

數(shù)據(jù)發(fā)送模塊,用于從隊列q4中拉取數(shù)據(jù),異步發(fā)送至數(shù)據(jù)服務(wù)端。

數(shù)據(jù)緩存模塊,用于在數(shù)據(jù)發(fā)送模塊中注冊回調(diào)函數(shù),根據(jù)異步發(fā)送的響應(yīng)和緩存策略,緩存相應(yīng)的實時數(shù)據(jù)。

圖8示出了根據(jù)本發(fā)明一實施例的數(shù)據(jù)壓縮裝置的結(jié)構(gòu)框圖。如圖8所示,本發(fā)明實施例還提供一種數(shù)據(jù)壓縮裝置,該裝置可以包括:映射模塊81,用于將采集的數(shù)據(jù)的采集時間和數(shù)據(jù)值映射為時間-數(shù)據(jù)值的坐標系中的數(shù)據(jù)點;第一確定模塊82,用于根據(jù)指定為起始點的已保存的數(shù)據(jù)點確定在采集時間上位于該已保存的數(shù)據(jù)點之后的下一個要被保存的數(shù)據(jù)點;第二確定模塊83,用于將確定的要被保存的數(shù)據(jù)點重新指定為起始點并根據(jù)該重新指定的起始點確定在采集時間上位于該重新指定的起始點之后的下一個要被保存的數(shù)據(jù)點,直到確定出所述數(shù)據(jù)點中所有要被保存的數(shù)據(jù)點;以及保存模塊84,用于保存被確定要被保存的數(shù)據(jù)點;其中,所述第一確定模塊82包括:判斷單元821,用于按照采集時間的順序依次判斷所述起始點之后的數(shù)據(jù)點是否滿足當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值;確定單元822,用于如果所述當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間存在至少一個數(shù)據(jù)點到當(dāng)前被考慮的數(shù)據(jù)點與所述起始點之間的線段的距離超過預(yù)定義值,則將當(dāng)前被考慮的數(shù)據(jù)點之前的一個相鄰的數(shù)據(jù)點確定為下一個要被保存的數(shù)據(jù)點。本發(fā)明實施例提供的數(shù)據(jù)壓縮裝置可以實現(xiàn)壓縮后的相鄰數(shù)據(jù)點的數(shù)據(jù)特征盡量不重復(fù),從而可以在數(shù)據(jù)壓縮率和數(shù)據(jù)特征覆蓋率之間取得很好的平衡。

本發(fā)明實施例提供的數(shù)據(jù)壓縮裝置的具體工作原理及益處與上述本發(fā)明實施例提供的數(shù)據(jù)壓縮方法的具體工作原理及益處相似,這里將不再贅述。

相應(yīng)的,本發(fā)明提供一種機器可讀存儲介質(zhì),該機器可讀存儲介質(zhì)上存儲有指令,該指令用于使得機器執(zhí)行本申請上述的數(shù)據(jù)壓縮方法。

以上結(jié)合附圖詳細描述了本發(fā)明例的可選實施方式,但是,本發(fā)明實施例并不限于上述實施方式中的具體細節(jié),在本發(fā)明實施例的技術(shù)構(gòu)思范圍內(nèi),可以對本發(fā)明實施例的技術(shù)方案進行多種簡單變型,這些簡單變型均屬于本發(fā)明實施例的保護范圍。

另外需要說明的是,在上述具體實施方式中所描述的各個具體技術(shù)特征,在不矛盾的情況下,可以通過任何合適的方式進行組合。為了避免不必要的重復(fù),本發(fā)明實施例對各種可能的組合方式不再另行說明。

本領(lǐng)域技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序存儲在一個存儲介質(zhì)中,包括若干指令用以使得一個(可以是單片機,芯片等)或處理器(processor)執(zhí)行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

此外,本發(fā)明實施例的各種不同的實施方式之間也可以進行任意組合,只要其不違背本發(fā)明實施例的思想,其同樣應(yīng)當(dāng)視為本發(fā)明實施例所公開的內(nèi)容。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1