System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據存儲,具體涉及一種數據壓縮方法和裝置。
技術介紹
1、隨著網絡技術的發展,對數據的存儲和傳輸提出了更高的要求。為了在有限的資源條件下實現更多數據的存儲和傳輸,在數據傳輸和存儲之前對數據進行壓縮是非常必要的。
2、由于在數據中經常會存在一定的重復部分,對該部分進行重新編碼可達到壓縮的效果。lz77算法是基于“字典”的編碼方式,通過匹配的方式確定重復部分,對重復出現的部分進行處理,通過幾個可以表示該重復位置的特征值,來確定重復部分的位置。
3、傳統技術中,也有利用硬件的并行計算優勢來進行匹配的方法。該方式可并行匹配的數量取決于存儲單元的數量,對硬件的資源消耗大。
技術實現思路
1、本專利技術實施例提供一種數據壓縮方法、裝置、存儲介質及電子設備,旨在減少存儲資源,進而提高數據壓縮效率。
2、本專利技術實施例提供一種數據壓縮方法,包括:
3、將一待壓縮數據劃分為多個連續的數據塊,將所述數據塊劃分為n個字節組,并對所述字節組進行散列處理,得到第一哈希值及其對應的數據串;
4、以每一字節組作為目標字節組,每一目標字節組對應n行n列存儲表的一行作為目標行,以每一數據串對應的第一哈希值作為寫地址,將每一目標字節組之前的字節組對應的數據串寫入對應的目標行中,其中,存儲表的每一行存儲于m個存儲單元中,所述m<n;
5、以每一字節組作為待匹配字節組,以所述待匹配字節組的第一哈希值為讀地址讀取對應的目標行中的數
6、從所述第一數據矩陣篩選出匹配位置;
7、根據所述匹配位置從所述待壓縮數據中查找第一待匹配數據和第二待匹配數據,并根據所述第一待匹配數據和第二待匹配數據確定出所述匹配位置的匹配長度和匹配偏移量;
8、根據所述匹配位置、所述匹配長度和所述匹配偏移量,生成所述數據塊對應的壓縮數據,根據多個所述數據塊對應的壓縮數據生成所述待壓縮數據對應的壓縮數據。
9、本專利技術實施例還提供一種數據壓縮裝置,包括:
10、散列模塊,用于將一待壓縮數據劃分為多個連續的數據塊,將所述數據塊劃分為n個字節組,并對所述字節組進行散列處理,得到第一哈希值及其對應的數據串;
11、寫數據模塊,用于以每一字節組作為目標字節組,每一目標字節組對應n行n列存儲表的一行作為目標行,以每一數據串對應的第一哈希值作為寫地址,將每一目標字節組之前的字節組對應的數據串寫入對應的目標行中,其中,存儲表的每一行存儲于m個存儲單元中,所述m<n;
12、讀數據模塊,用于以每一字節組作為待匹配字節組,以所述待匹配字節組的第一哈希值為讀地址讀取對應的目標行中的數據串,在每一存儲單元分別讀取一個數據,得到n行m列的第一數據矩陣;
13、匹配模塊,用于從所述第一數據矩陣篩選出匹配位置;以及,根據所述匹配位置從所述待壓縮數據中查找第一待匹配數據和第二待匹配數據,并根據所述第一待匹配數據和第二待匹配數據確定出所述匹配位置的匹配長度和匹配偏移量;
14、壓縮模塊,用于根據所述匹配位置、所述匹配長度和所述匹配偏移量,生成所述數據塊對應的壓縮數據,根據多個所述數據塊對應的壓縮數據生成所述待壓縮數據對應的壓縮數據。
15、本專利技術實施例還提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有多條指令,所述指令適于處理器進行加載,以執行本專利技術實施例所提供的任一數據壓縮方法。
16、本專利技術實施例還提供一種電子設備,所述電子設備包括處理器和存儲器,所述存儲器有計算機程序,所述處理器通過調用所述計算機程序,執行本專利技術實施例所提供的任一數據壓縮方法。
17、本專利技術實施例提供的數據壓縮方案,n×n的存儲表采用的是n×m個存儲單元,m<n,在對數據進行壓縮時,先將目標字節組之前的n個字節組對應的數據串寫入n行n列的存儲表的目標行,存儲表的每一行存儲于m個存儲單元中,從而存儲表仍可以寫入n*n個數據。但減少了需要的存儲單元的數量。再從每個存儲單元分別讀取一個數據,得到n×m的第一數據矩陣,從而在讀取的過程中,即可實現一次化簡,減少了后續的數據匹配量。該數據壓縮方法需要的存儲資源更少,匹配速度更快,進而能夠提高數據壓縮效率。
本文檔來自技高網...【技術保護點】
1.一種數據壓縮方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述從所述第一數據矩陣篩選出匹配位置,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述第一數據矩陣中每一第一數據的有效性,所述第一數據與所述待匹配字節組的匹配情況、所述第一數據矩陣的第一數據的地址的連續情況以及所述第一數據的地址,將所述第一數據矩陣化簡為M行M列的第二數據矩陣,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據所述第二匹配標識、連續標識以及地址,從所述第一矩陣數據的每一列第一數據中篩選M個候選匹配位置,得到M行M列的第二數據矩陣,包括:
5.根據權利要求2至4任一項所述的方法,其特征在于,所述從所述第二數據矩陣篩選出匹配位置,包括:
6.根據權利要求4所述的方法,其特征在于,所述根據所述匹配位置從所述待壓縮數據中查找第一待匹配數據和第二待匹配數據,并根據所述第一待匹配數據和第二待匹配數據確定出所述匹配位置的匹配長度和匹配偏移量,包括:
7.根據權利要求6所述的方法,其特征在于,所述根據所述
8.根據權利要求6或7所述的方法,其特征在于,所述根據所述第二匹配標識,確定匹配模式,包括:
9.根據權利要求6所述的方法,其特征在于,所述根據所述第二匹配標識,確定匹配模式,包括:
10.一種數據壓縮裝置,其特征在于,包括:
...【技術特征摘要】
1.一種數據壓縮方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述從所述第一數據矩陣篩選出匹配位置,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述第一數據矩陣中每一第一數據的有效性,所述第一數據與所述待匹配字節組的匹配情況、所述第一數據矩陣的第一數據的地址的連續情況以及所述第一數據的地址,將所述第一數據矩陣化簡為m行m列的第二數據矩陣,包括:
4.根據權利要求3所述的方法,其特征在于,所述根據所述第二匹配標識、連續標識以及地址,從所述第一矩陣數據的每一列第一數據中篩選m個候選匹配位置,得到m行m列的第二數據矩陣,包括:
5.根據權利要求2至4任一項所述的...
【專利技術屬性】
技術研發人員:任宇,王文華,鐘林鋼,丁昊杰,程愛蓮,
申請(專利權)人:杭州菲數科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。