System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及數據壓縮,特別是涉及一種數據壓縮方法和一種數據解壓縮方法。
技術介紹
1、隨著物聯數據的爆炸式增長,對于物聯設備當前適用能耗低、存儲資源有限、計算資源不足的諸多特點,如何有效處理如此龐大且快速不斷增長的數據,提出了較大的挑戰。而壓縮技術可以應用在傳感器端、中心端,大大的減小其數據空間占用,減小了數據存儲和數據傳輸的代價,在時序場景中扮演著重要的角色。
2、相關技術中,整數的壓縮技術日益成熟,大部分的時序場景中,整數的壓縮已經可以達到比較理想的壓縮率,而浮點數的無損壓縮方法的壓縮率遠遠不如整數的壓縮率。由于在大多數的物聯場景中,傳感器采集的數據都為浮點數類型,因此優化浮點數的壓縮對于物聯時序場景中,具有重要價值。
3、當前亟需一種數據壓縮方法,以提高浮點數的無損壓縮的壓縮率。
技術實現思路
1、本申請實施例的目的在于提供一種數據壓縮方法和一種數據解壓縮方法,以提高浮點數的無損壓縮的壓縮率。具體技術方案如下:
2、第一方面,本申請實施例提供了一種數據壓縮方法,所述方法包括:
3、將待壓縮的浮點數序列中的多個浮點數分別轉換為整數,得到整數序列,并在預設存儲空間中,寫入所述整數序列中的第一個整數;
4、從所述整數序列中的第二個整數開始,計算每個整數與該整數的前一個整數的異或結果,得到結果序列,并從所述結果序列中的第一個異或結果開始,按照預設數量,對所述結果序列進行分組,得到結果組序列;
5、確定所述結果組序列
6、根據每個第一類組合中的結果組數量,生成關于該第一類組合的第一存儲數據,并根據每個第二類組合中的異或結果,生成關于該第二類組合的第二存儲數據;
7、從所述預設存儲空間中所述第一個整數所在存儲位置的下一個存儲位置開始,按照每個第一類組合和每個第二類組合中的結果組在所述結果組序列中的排列順序,將所生成的各個第一存儲數據和各個第二存儲數據,順序寫入所述預設存儲空間;
8、將所述預設存儲空間中所寫入的所述第一個整數、各個第一存儲數據和各個第二存儲數據,確定為所述浮點數序列的壓縮數據。
9、可選的,一種具體實現方式中,所述確定所述結果組序列中的第一類組合和第二類組合,包括:
10、按照所述結果組序列中的各個結果組的排列順序,依次遍歷每個結果組,并在遍歷到每個結果組時,判斷該結果組中所包括的各個異或結果是否均為0;
11、若是,則遍歷下一個結果組,直至所遍歷到的結果組中存在不為0的異或結果,將所遍歷到的未被劃分到任一組合中且所包括各個異或結果均為0的結果組確定為第一類組合;
12、若否,則將該結果組確定為第二類組合。
13、可選的,一種具體實現方式中,所述根據每個第一類組合中的結果組數量,生成關于該第一類組合的第一存儲數據,并根據每個第二類組合中的異或結果,生成關于該第二類組合的第二存儲數據,包括:
14、在確定得到每個第一類組合時,生成包括預設的第一標識信息、第一字節數和該第一類組合中的結果組的第一數量的存儲數據,作為關于該第一類組合的第一存儲數據;其中,所述第一字節數用于表征存儲所述第一數量時,所述第一數量所占用的字節數;
15、在確定得到每個第二類組合時,根據該第二類組合中的每個異或結果中的0的分布情況,生成關于該第二類組合的第二存儲數據。
16、可選的,一種具體實現方式中,所述根據該第二類組合中的每個異或結果中的0的分布情況,生成關于該第二類組合的第二存儲數據,包括:
17、根據該第二類組合中的每個異或結果中的0的分布情況,生成關于該第二類組合的第一信息或者第二信息作為關于該第二類組合的第二存儲數據;
18、其中,所述第一信息包括:預設的第二標識信息、公共有效位數量、公共低位0數量和有效位信息;所述第二信息包括:預設的第三標識信息、公共高位0數量和數據信息;
19、所述公共低位0數量用于表示:該第二類組合中的各個異或結果的低位0所占用的比特位的最小數量或者完整字節的最小數量;每個異或結果的低位0為:按照從最低位到最高位的順序,第一次出現的非0數之前的0;
20、所述公共有效位數量用于表示:該第二類組合中的各個異或結果中的有效位的數量的最大值,每個異或結果的有效位為:每個異或結果所占用的比特位中,按照從所述最高位到所述最低位的順序,從第一個出現的非0數至最后一個出現的非0數所占的比特位;
21、所述公共高位0數量用于表示:該第二類組合中的各個異或結果的高位0所占用的比特位的最小數量或者完整字節的最小數量;每個異或結果的高位0為:按照從所述最高位到所述最低位的順序,第一次出現的非0數之前的0;
22、所述有效位信息為:按照該第二類組合中的各個異或結果的排列信息排列的,該第二類組合中的各個異或結果的公共有效位的數值;每個異或結果的公共有效位為:每個異或結果所占用的比特位中,按照從所述最高位到所述最低位的順序,去掉所述公共高位0數量個比特位,并按照從所述最低位到所述最高位的順序,去掉所述公共低位0數量個比特位時,所剩余的比特位;
23、所述數據信息包括:按照該第二類組合中的各個異或結果的排列信息排列的,該第二類組合中的各個異或結果的目標信息;針對該第二類組合中的每個異或結果,若該異或結果為0,則該異或結果的目標信息為第一數值,若該異或結果不為0,則該異或結果的目標信息包括:第二數值,以及按照從所述最高位到所述最低位的順序,在該異或結果中除去所述公共高位0數量個比特位,所剩下的比特位的數值。
24、可選的,一種具體實現方式中,所述生成關于該第二類組合的第一信息或者第二信息作為關于該第二類組合的第二存儲數據,包括:
25、若該第二類組合所包括的為0的異或結果的數量小于指定數量,則生成關于該第二類組合的第一信息作為關于該第二類組合的第二存儲數據;
26、若該第二類組合所包括的為0的異或結果的數量不小于所述指定數量,則生成關于該第二類組合的第二信息作為關于該第二類組合的第二存儲數據;
27、或者,
28、確定關于該第二類組合的第一信息的第一數據量和關于該第二類組合的第二信息的第二數據量;
29、若所述第一數據量小于所述第二數據量,則生成關于該第二類組合的第一信息作為關于該第二類組合的第二存儲數據;
30、若所述第一數據量不小于所述第二數據量,則生成關于該第二類組合的第二信息作為關于該第二類組合的第二存儲數據。
31、可選的,一種具體實現方式中,所述從所述預設存儲空間中所述第一個整數所在存儲位置的下一個存儲位置開始,按照每個第一類本文檔來自技高網...
【技術保護點】
1.一種數據壓縮方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述確定所述結果組序列中的第一類組合和第二類組合,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據每個第一類組合中的結果組數量,生成關于該第一類組合的第一存儲數據,并根據每個第二類組合中的異或結果,生成關于該第二類組合的第二存儲數據,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據該第二類組合中的每個異或結果中的0的分布情況,生成關于該第二類組合的第二存儲數據,包括:
5.根據權利要求4所述的方法,其特征在于,所述生成關于該第二類組合的第一信息或者第二信息作為關于該第二類組合的第二存儲數據,包括:
6.根據權利要求3所述的方法,其特征在于,所述從所述預設存儲空間中所述第一個整數所在存儲位置的下一個存儲位置開始,按照每個第一類組合和每個第二類組合中的結果組在所述結果組序列中的排列順序,將所生成的各個第一存儲數據和各個第二存儲數據,順序寫入所述預設存儲空間,包括:
7.根據權利要求1-6任一項所述的方法
8.根據權利要求1-6任一項所述的方法,其特征在于,在所述將待壓縮的浮點數序列中的多個浮點數分別轉換為整數,得到整數序列之前,所述方法還包括:
9.根據權利要求1-6任一項所述的方法,其特征在于,所述方法還包括:
10.根據權利要求1-6任一項所述的方法,其特征在于,所述浮點數序列為:多媒體數據序列;所述多媒體數據包括:視頻數據、音頻數據和圖像數據中的至少一種。
11.一種數據解壓縮方法,其特征在于,所述方法包括:
12.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質內存儲有計算機程序,所述計算機程序被處理器執行時實現權利要求1-10任一所述的方法和/或權利要求11所述的方法。
...【技術特征摘要】
1.一種數據壓縮方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述確定所述結果組序列中的第一類組合和第二類組合,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據每個第一類組合中的結果組數量,生成關于該第一類組合的第一存儲數據,并根據每個第二類組合中的異或結果,生成關于該第二類組合的第二存儲數據,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據該第二類組合中的每個異或結果中的0的分布情況,生成關于該第二類組合的第二存儲數據,包括:
5.根據權利要求4所述的方法,其特征在于,所述生成關于該第二類組合的第一信息或者第二信息作為關于該第二類組合的第二存儲數據,包括:
6.根據權利要求3所述的方法,其特征在于,所述從所述預設存儲空間中所述第一個整數所在存儲位置的下一個存儲位置開始,按照每個第一類組合和每個第二類組合中的結果組在所述結果組序列中的排列順序,...
【專利技術屬性】
技術研發人員:吳鎂,張建興,李林森,姜偉浩,浦世亮,
申請(專利權)人:杭州海康威視數字技術股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。