System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本公開涉及計算機,特別涉及一種數據編碼方法和裝置、存儲介質和程序產品。
技術介紹
1、在車載系統中,多個信號往往會在相同的時間戳下同時發生。例如,車輛的剎車操作會觸發多個信號,或者車輛定期收集各系統的狀態信息。這些信號通常是時間同步的。因此,通過將具有同一時間戳的信息存儲在一起,可有效節省存儲空間。
2、在此基礎上,可將數據進行壓縮編碼,以便進一步節省存儲信息所占用的空間。
技術實現思路
1、專利技術人注意到,在相關技術中,異或(xor)編碼通過利用相鄰兩個數據的異或值進行編碼,可有效壓縮長零序列。但在編碼過程中,若某個數據與相鄰數據的偏差較大,導致這兩個數據的異或值較大,從而無法提供更高的壓縮比。
2、據此,本公開提供一種數據編碼方法,根據兩個數據的異或值的大小選擇不同的編碼方式,從而可提供更高的壓縮比。
3、在本公開的第一方面,提供一種數據編碼方法,由數據編碼裝置執行,包括:從數據表中獲取待編碼數據列,其中所述待編碼數據列中包括多行數據;將所述待編碼數據列中的第1行數據寫入緩存,并將所述第1行數據作為當前存儲數據;按照從所述待編碼數據列中的第2行至第n行的順序,計算第i行數據和所述當前存儲數據的異或值,,n為行總數;若所述異或值不為零,判斷所述異或值是否在指定范圍內;若所述異或值在指定范圍內,利用所述異或值對所述第i行數據進行異或編碼,以得到所述第i行數據的編碼值;若所述異或值不在指定范圍內,利用所述異或值對所述第i行數據進行霍夫曼編碼,以得
4、在一些實施例中,所述判斷所述異或值是否在指定范圍內包括:確定所述異或值的前導零個數和后綴零個數;判斷所述后綴零個數是否小于等于所述后綴零閾值;若所述后綴零個數小于等于所述后綴零閾值,判斷所述前導零個數是否等于當前存儲的前導零數值;若所述前導零個數不等于所述當前存儲的前導零數值,判斷所述前導零個數是否小于前導零閾值;若所述前導零個數小于所述前導零閾值,確定所述異或值不在指定范圍內;若所述前導零個數大于等于所述前導零閾值,確定所述異或值在指定范圍內。
5、在一些實施例中,所述利用所述異或值對所述第i行數據進行異或編碼包括:根據所述前導零個數和后綴零個數,生成所述第i行數據的標志位;根據預定的前導零映射表,查詢與所述前導零個數對應的前導零映射值;根據所述第i行數據的標志位、所述前導零映射值和所述異或值,生成所述第i行數據的編碼值。
6、在一些實施例中,所述生成所述第i行數據的標志位包括:為所述第i行數據生成用于指示所述異或值不為零的標志位、用于指示進行編碼的標志位、和用于指示所述前導零個數大于等于所述前導零閾值的標志位。
7、在一些實施例中,所述生成所述第i行數據的編碼值包括:根據所述用于指示所述異或值不為零的標志位、所述用于指示進行編碼的標志位、所述用于指示所述前導零個數大于等于所述前導零閾值的標志位、所述前導零映射值、和所述異或值,生成所述第i行數據的異或編碼值。
8、在一些實施例中,將所述第i行數據作為當前存儲數據;將所述前導零個數作為當前存儲的前導零數值。
9、在一些實施例中,所述利用所述異或值對所述第i行數據進行霍夫曼編碼包括:根據所述前導零個數和后綴零個數,生成所述第i行數據的標志位;在預定的霍夫曼編碼表中,查詢出與所述異或值的出現頻率對應的霍夫曼編碼映射值;根據所述第i行數據的標志位和所述霍夫曼編碼映射值,生成所述第i行數據的編碼值。
10、在一些實施例中,所述生成所述第i行數據的標志位包括:為所述第i行數據生成用于指示所述異或值不為零的標志位、用于指示所述后綴零個數小于等于所述后綴零閾值且所述前導零個數不等于當前存儲的前導零數值的標志位、和用于指示所述前導零個數小于所述前導零閾值的標志位。
11、在一些實施例中,所述生成所述第i行數據的霍夫曼編碼值包括:根據所述用于指示所述異或值不為零的標志位、所述用于指示所述后綴零個數小于等于所述后綴零閾值且所述前導零個數不等于當前存儲的前導零數值的標志位、所述用于指示所述前導零個數小于所述前導零閾值的標志位、和所述霍夫曼編碼映射值,生成所述第i行數據的霍夫曼編碼值。
12、在一些實施例中,若所述后綴零個數大于所述后綴零閾值,或者,若所述前導零個數等于所述當前存儲的前導零數值,生成所述第i行數據的標志位;根據所述標志位和所述異或值,生成所述第i行數據的編碼值。
13、在一些實施例中,所述生成所述第i行數據的標志位包括:為所述第i行數據生成用于指示所述異或值不為零的標志位、和用于指示不進行編碼的標志位。
14、在一些實施例中,所述生成所述第i行數據的編碼值包括:根據所述用于指示所述異或值不為零的標志位、所述用于指示不進行編碼的標志位、和所述異或值,生成所述第i行數據的編碼值。
15、在一些實施例中,將所述第i行數據作為當前存儲數據;將所述前導零個數作為當前存儲的前導零數值。
16、在一些實施例中,在所述異或值為零的情況下,為所述第i行數據生成用于指示所述異或值為零的標志位、和用于指示不進行編碼的標志位;根據所述用于指示所述異或值為零的標志位、和所述用于指示無需編碼的標志位,生成所述第i行數據的編碼。
17、在一些實施例中,將所述第i行數據作為當前存儲數據。
18、在一些實施例中,在從數據表中獲取所述待編碼數據列后,檢測所述待編碼數據列中的每一行是否包括數據;若第m行未包括數據,則將相鄰行的數據填入所述第m行中,以便對所述待編碼數據列進行更新,。
19、在一些實施例中,所述數據表能夠分割為多個數據行或多個數據列,其中每個數據行中包括的多個數據具有相同的時間戳,每個數據列中包括的多個數據具有相同的格式。
20、在本公開的第二方面,提供一種數據編碼裝置,包括:存儲器;處理器,耦合到存儲器,處理器被配置為基于存儲器存儲的指令執行實現如上述任一實施例所述的方法。
21、在本公開的第三方面,提供一種計算機可讀存儲介質,其中,計算機可讀存儲介質存儲有計算機指令,指令被處理器執行時實現如上述任一實施例所述的方法。
22、在本公開的第四方面,提供一種計算機程序產品,包括計算機指令,其中所述計算機指令被處理器執行時實現如上述任一實施例所述的方法。
23、通過以下參照附圖對本公開的示例性實施例的詳細描述,本公開的其它特征及其優點將會變得清楚。
本文檔來自技高網...【技術保護點】
1.一種數據編碼方法,由數據編碼裝置執行,包括:
2.根據權利要求1所述的方法,其中,所述判斷所述異或值是否在指定范圍內包括:
3.根據權利要求2所述的方法,其中,所述利用所述異或值對所述第i行數據進行異或編碼包括:
4.根據權利要求3所述的方法,其中,所述生成所述第i行數據的標志位包括:
5.根據權利要求4所述的方法,其中,所述生成所述第i行數據的編碼值包括:
6.根據權利要求3所述的方法,還包括:
7.根據權利要求2所述的方法,其中,所述利用所述異或值對所述第i行數據進行霍夫曼編碼包括:
8.根據權利要求7所述的方法,其中,所述生成所述第i行數據的標志位包括:
9.根據權利要求8所述的方法,其中,所述生成所述第i行數據的霍夫曼編碼值包括:
10.根據權利要求2所述的方法,還包括:
11.根據權利要求10所述的方法,其中,所述生成所述第i行數據的標志位包括:
12.根據權利要求11所述的方法,其中,所述生成所述第i行數據的編碼值包括:
14.根據權利要求1所述的方法,還包括:
15.根據權利要求14所述的方法,還包括:
16.根據權利要求1所述的方法,還包括:
17.根據權利要求1-16中任一項所述的方法,其中,
18.一種數據編碼裝置,包括:
19.一種計算機可讀存儲介質,其中,計算機可讀存儲介質存儲有計算機指令,指令被處理器執行時實現如權利要求1-17中任一項所述的方法。
20.一種計算機程序產品,包括計算機指令,其中所述計算機指令被處理器執行時實現如權利要求1-17中任一項所述的方法。
...【技術特征摘要】
1.一種數據編碼方法,由數據編碼裝置執行,包括:
2.根據權利要求1所述的方法,其中,所述判斷所述異或值是否在指定范圍內包括:
3.根據權利要求2所述的方法,其中,所述利用所述異或值對所述第i行數據進行異或編碼包括:
4.根據權利要求3所述的方法,其中,所述生成所述第i行數據的標志位包括:
5.根據權利要求4所述的方法,其中,所述生成所述第i行數據的編碼值包括:
6.根據權利要求3所述的方法,還包括:
7.根據權利要求2所述的方法,其中,所述利用所述異或值對所述第i行數據進行霍夫曼編碼包括:
8.根據權利要求7所述的方法,其中,所述生成所述第i行數據的標志位包括:
9.根據權利要求8所述的方法,其中,所述生成所述第i行數據的霍夫曼編碼值包括:
10.根據權利要求2所述的方法,還...
【專利技術屬性】
技術研發人員:謝寧,王濤,
申請(專利權)人:智協慧同北京科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。