本文作者:kaifamei

一種數據高效存儲方法與流程

更新時間:2025-12-26 17:13:02 0條評論

一種數據高效存儲方法與流程



1.本發明涉及數據存儲領域,具體涉及一種數據高效存儲方法。


背景技術:



2.在對數據進行存儲時,往往需要進行壓縮處理,數據壓縮是基于數據的冗余性,其中游程編碼是常用的數據壓縮方法之一,但游程編碼壓縮依賴于連續重復的數據段,若連續重復的數據段少且短,則采用游程編碼進行壓縮時效果較差。現有的壓縮方法通常采用固定的掃描方法,例如對數據進行掃描時,往往采用的是光柵掃描法,光柵掃描是逐行進行掃描的。然而,不同的數據有不同的特點,采用固定的掃描方式難以使其得到好的壓縮性能,例如光柵掃描法通常會使掃描得到的連續重復的數據段較少,導致最終的壓縮效果較差。


技術實現要素:



3.本發明提供一種數據高效存儲方法,以解決現有的采用游程編碼進行壓縮時效果較差的問題,所采用的技術方案具體如下:本發明一個實施例提供了一種數據高效存儲方法,該方法包括以下步驟:獲取待存儲數據,并轉換為二進制數據;根據所有的二進制數據得到二維矩陣,得到二維矩陣中值為1的點作為黑像素點,得到黑像素點的所有連通域,記為第一連通域;以像素點上下左右四個方向作為像素點的四領域,以像素點左上、左下、右上和右下四個方向作為像素點的d領域,得到3
×
3大小的滑窗,獲取每個第一連通域內所有黑像素點的四領域中存在黑像素點的第一目標像素點個數,獲取每個第一連通域內所有的黑像素點的d領域中存在黑像素點的第二目標像素點個數,第一目標像素點個數和第二目標像素點個數做差與每個第一連通域中黑像素點的總數進行比較得到每個第一連通域的掃描方式的優選程度;根據每個第一連通域掃描方式的優選程度得到二維矩陣的全局掃描方式優選程度,根據全局掃描方式優選程度獲取全局最優掃描方式;使用全局最優掃描方式對二維矩陣進行掃描得到壓縮存儲的數據。
4.優選的,所述根據所有的二進制數據得到二維矩陣方法為:獲得所有二進制數據的位數,對其進行開方并向上取整,向上取整后的數字就是二維矩陣的長寬,將二維數據利用光柵掃描法填入二維矩陣,若二進制數據沒有填滿二維矩陣時,將未被填的部分補0。
5.優選的,所述第一連通域的獲取方法為:在二維矩陣中,將以任意一個黑像素點作為中心點,使用區域生長法獲得與中心點相連的所有黑像素點的區域,之后除該區域外再使用任意黑像素點為中心點再次得到一個區域,直到矩陣中所有黑像素點被劃分到每個區域中,其中每個區域就是第一
連通域。
6.優選的,所述每個第一連通域的掃描方式的優選程度的計算方法為:式中表示第個連通域的掃描方式優選程度,表示第一目標像素點的數量,表示第二目標點的數量,表示第個連通域中黑像素點的總數量。
7.優選的,所述根據每個第一連通域掃描方式的優選程度得到二維矩陣的全局掃描方式優選程度,根據全局掃描方式優選程度獲取全局最優掃描方式的方法為:根據所有第一連通域的掃描方式優選程度求均值得到全局掃描方式優選程度,獲取每種掃描方式對應的每個取值范圍,獲取全局掃描方式優選程度所屬的取值范圍,該范圍對應的掃描方式作為全局最優掃描方式。
8.優選的,所述獲取每種掃描方式對應的每個取值范圍的具體方法為:字掃描對應第一取值范圍,希爾伯特掃描對應第二取值范圍,螺旋掃描對應第三取值范圍。
9.本發明的有益效果是:本發明提出了一種數據高效存儲方法,通過對待進行壓縮存儲的數據進行編碼轉換,構建二維矩陣,通過分析數據的分布,自適應選擇最優的掃描方式,使掃描得到的一維序列中連續重復的數據段足夠多且足夠長,從而提高游程編碼的壓縮效率,達到在無損的基礎上增大壓縮率的目的。
附圖說明
10.為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
11.圖1為本發明的一個實施例所提供一種數據高效存儲方法的流程示意圖;圖2為不同掃描方式的效果圖與示意圖;圖3為鄰域示意圖。
具體實施方式
12.下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
13.請參閱圖1,其示出了本發明一個實施例提供的一種數據高效存儲方法流程圖,該方法包括以下步驟:步驟s001、采集待存儲數據,將數據進行預處理后轉換為二進制數據。
14.由于計算機只能識別二進制數據,因此無論任何數據,例如傳感器輸出的數據、文本數據都需要轉換成二進制數據,將數據轉換成二進制數據的方法是公知的,例如采集的
數據全部轉換為ascii值即十進制形式存在,然后再將這些十進制數據轉換成二進制數據;其中十進制數據往往存在一定的差異,而二進制數相對于十進制數存在更大的空間冗余度,計算機在對這些二進制數據進行處理和分析可以獲得較大的壓縮率,減少數據的存儲空間。
15.本實施例為了敘述方便和數據示例,接下來以將十進制整數轉換為4位二進制數據進行敘述,實施者可以根據具體采集的數據轉換成相應位數的二進制數據。
16.步驟s002、將二進制數據構建二維矩陣,根據二維矩陣種前景數據點的聚集程度和分布方向自適應獲取最優掃描方式。
17.首先構建二維矩陣,第一步獲取到的二進制數據為一維數據,例如l={3,3,6,6,4,12,9,8,3,3,6,6,4,4,8,8}的二進制序列為:0011 0011 0110 0110 0100 1100 1001 1000 0011 0011 0110 0110 0100 0100 1000 1000,此時,二進制序列中每一個數字僅僅與其相鄰的字符之間存在關聯,因此,為了增加數字之間的關聯性,將一維的二進制序列轉換為二維矩陣,故對一維的二進制序列進行轉換,一維的二進制序列中0、1的數字總個數記為,則轉換為二維矩陣后二維矩陣的邊長l為:式中l表示二維矩陣的邊長,x表示一維的二進制序列中0、1的數字總個數,表示向上取整,由此構建大小為大小的二維矩陣。將一維二進制序列中的0、1數字按照光柵掃描的順序依次填入大小為的二維矩陣中,若一維二進制序列中所有的0、1數字填完后二維矩陣還有空缺位置,則進行補0,令二維矩陣中每一個位置均存在0或1的數字,光柵掃描的填充方式為從左到右填滿第一行之后填第二行的最左邊再次從左到右填充。
18.進一步的獲取目標連通域,構建的二維矩陣中是由0、1兩個值組成的二值圖像,二維矩陣可視化效果圖如二維矩陣可視化示意圖1所示。在進行編碼轉換時,為了便于解碼,通常采用的是定長編碼,定長編碼存在大量的補零位,因此,二進制序列中“0”的個數要遠超于“1”的個數,為了便于后續計算,降低計算難度,在二維矩陣中,將“1”作為前景進行計算,在上述二維矩陣可視化效果圖中,黑像素點表示的是“1”,白像素點表示“0”。獲取前景黑像素點連通域,以任意一黑像素點為目標點,采用區域生長法獲取其所在連通域,區域生長法為現有技術,此處不予以詳細概述,當所述像素點所在連通域獲取完成后,選擇除該連通域以外的黑像素點作為目標再次使用區域生長法,直到所有黑像素點被遍歷完成后停止,得到的所有黑像素點的連通域就是第一連通域。
19.進一步的,對掃描方式進行分析,不同的掃描方式會出現不同的掃描結果,例如序列l={3,3,6,6,4,12,9,8,3,3,6,6,4,4,8,8}的二進制序列為:0011 0011 0110 0110 0100 1100 1001 1000 0011 0011 0110 0110 0100 0100 1000 1000此時二進制的空間冗余程度較低,將64位的二進制序列轉換為大小的二維矩陣后,二維矩陣中的黑像素點呈現較為規律的分布,此時采用z字掃描法進行掃描后,掃描后的二進制序列變為:0000111111000000000000 11111111111111000000000000000111111000000,通過z字掃描后獲得的二進制序列空間冗余程度大大提高,此時采用游程編碼壓縮為:(0,4)(1,6)(0,
12)(1,14)(0,16)(1,6)(0,6),壓縮后由原本的64位變為14位。其中常用的掃描方式分為四種,分別為連續光柵掃描、希爾伯特掃描、螺旋掃描與z字掃描,四種掃描方式的示意圖與效果圖如圖2所示;進一步的,根據連通域像素點分布計算掃描方式的優選程度,觀察發現,黑像素點的分布方式不同,掃描方式不同,最終得到的掃描序列的空間冗余程度也不同,其中上述四種掃描方式中希爾伯特掃描針對聚集程度較高的子塊連通域有較好的效果,z字掃描針對分布較為離散且呈現對角分布的連通域有較好的效果,連續光柵掃描對水平分布的連通域有較好的效果,而螺旋掃描對水平、垂直分布的連通域均有較好的效果,其中螺旋掃描的效果包含連續光柵掃描效果且優于連續光柵掃描效果。
20.以二維矩陣1111000100011111進行舉例,對于相同的連通域,螺旋掃描后的二進制序列變為0000001111111111,連續光柵掃描后的二進制序列為1111100000011111,可以發現螺旋掃描的掃描效果優于連續光柵掃描的掃描效果,掃描后序列的空間冗余程度更大,而由于連續光柵掃描只會將一行掃完再去一下行,效果較差,因此不考慮連續光柵掃描。
21.觀察發現,適合希爾伯特掃描方式的連通域分布較為密集,以像素點上下左右四個方向作為像素點的四領域,以像素點左上、左下、右上和右下四個方向作為像素點的d領域,如圖3所示,每一個黑像素點的鄰域中四鄰域與d-鄰域中均存在黑像素點,適合螺旋掃描方式的連通域分布較為規整,黑像素點的鄰域中四鄰域與d-鄰域中存在黑像素點,且黑像素點的四鄰域中存在的目標黑像素點個數遠遠大于黑像素點的d鄰域中存在的目標黑像素點個數,適合z字掃描方式的連通域分布較為離散,黑像素點的鄰域中四鄰域與d-鄰域中存在黑像素點,且黑像素點的四鄰域中存在的目標黑像素點個數遠遠小于黑像素點的d鄰域中存在的目標黑像素點個數。
22.因此建立大小的滑窗,以黑像素點為滑窗中心點,統計連通域中所有黑像素點的滑窗中黑像素點的四鄰域和中存在的目標黑像素點個數和鄰域中存在的目標黑像素點個數,其中第i個連通域中某個黑像素點四領域存在黑像素點時記為第一目標像素點,第i個連通域中某個黑像素點d領域存在黑像素點時記為第二目標像素點,第i個連通域中第一目標像素點的數量為,第二目標點的數量為。其中第個連通域中黑像素點的總數量記為,由于和的最大值都取f,的最大取值為,的最大取值為 ,根據鄰域分布情況計算第個連通域的掃描方式優選程度,即:式中表示第個連通域的掃描方式優選程度,表示第一目標像素點的數量,表示第二目標點的數量,表示第個連通域中黑像素點的總數量。
23.由于存在,,則第個連通域的掃描方式優選程度的取值范圍為,第個連通域的掃描方式優選程度的取值越大,越趨近于0.5,則表
示黑像素點的鄰域中四鄰域與d-鄰域中存在黑像素點,且黑像素點的四鄰域中存在的目標黑像素點個數遠遠大于黑像素點的d鄰域中存在的目標黑像素點個數,即,此時螺旋掃描的掃描方式為最優掃描方式;同理第個連通域的掃描方式優選程度的取值越小,越趨近于,則表示黑像素點的鄰域中四鄰域與d-鄰域中存在黑像素點,且黑像素點的四鄰域中存在的目標黑像素點個數遠遠小于黑像素點的d鄰域中存在的目標黑像素點個數,即,此時字掃描的掃描方式為最優掃描方式;同理第個連通域的掃描方式優選程度的取值越越趨近于,則表示每一個黑像素點的鄰域中四鄰域與d-鄰域中均存在黑像素點,即,此時希爾伯特掃描的掃描方式為最優掃描方式。
24.因此設定掃描方式優選程度區間,即當時,選擇字掃描的掃描方式;當時,選擇希爾伯特掃描的掃描方式;當時,選擇螺旋掃描的掃描方式。其中的經驗閾值取。
25.進一步的,計算全局掃描方式優選程度,上述計算是計算得到的第個連通域的掃描方式優選程度,二維矩陣中存在多個連通域,則全局的掃描方式優選程度為:式中表示全局掃描方式優選程度,n表示二維矩陣中連通域的個數,表示第個連通域的掃描方式優選程度,當最終得到的隸屬于哪一個掃描方式的取值區間,則該區間所對應的掃描方式就是全局最優掃描方式。
26.步驟s003、采用全局最優掃描方式對二維矩陣進行掃描,獲取掃描后的二進制序列,對掃描得到的二進制序列進行壓縮,得到壓縮后的數據。
27.通過計算得到全局最優掃描方式,通過全局最優掃描方式進行掃描后,得到的二進制序列的空間冗余程度大大增加,此時采用游程編碼進行壓縮并存儲,存儲時在壓縮文件的頭部存儲掃描方式。
28.例:原始序列l={3,3,6,6,4,12,9,8,3,3,6,6,4,4,8,8},l的二進制序列為:0011 0011 0110 0110 0100 1100 1001 1000 0011 0011 0110 0110 0100 0100 1000 1000,計算得到的全局最優掃描方式為字掃描的掃描方式,掃描后的二進制序列變為:0000111111000000000000 11111111111111000000000000000111111000000,游程編碼壓縮后的數據變為:(0,4)(1,6)(0,12)(1,14)(0,16)(1,6)(0,6),則壓縮存儲的存儲數據為:{z,(0,4)(1,6)(0,12)(1,14)(0,16)(1,6)(0,6)}。
29.以上所述僅為本發明的較佳的便于敘述的實施例而已,并不用以限制本發明,實施者可以根據具體要存儲的數據轉換成相應二進制數據進行上述實施例的實施即可,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。

技術特征:


1.一種數據高效存儲方法,其特征在于,該方法包括以下步驟:獲取待存儲數據,并轉換為二進制數據;根據所有的二進制數據得到二維矩陣,得到二維矩陣中值為1的點作為黑像素點,得到黑像素點的所有連通域,記為第一連通域;以像素點上下左右四個方向作為像素點的四領域,以像素點左上、左下、右上和右下四個方向作為像素點的d領域,得到3
×
3大小的滑窗,獲取每個第一連通域內所有黑像素點的四領域中存在黑像素點的第一目標像素點個數,獲取每個第一連通域內所有的黑像素點的d領域中存在黑像素點的第二目標像素點個數,第一目標像素點個數和第二目標像素點個數做差與每個第一連通域中黑像素點的總數進行比較得到每個第一連通域的掃描方式的優選程度;根據每個第一連通域掃描方式的優選程度得到二維矩陣的全局掃描方式優選程度,根據全局掃描方式優選程度獲取全局最優掃描方式;使用全局最優掃描方式對二維矩陣進行掃描得到壓縮存儲的數據。2.根據權利要求1所述的一種數據高效存儲方法,其特征在于,所述根據所有的二進制數據得到二維矩陣方法為:獲得所有二進制數據的位數,對其進行開方并向上取整,向上取整后的數字就是二維矩陣的長寬,將二維數據利用光柵掃描法填入二維矩陣,若二進制數據沒有填滿二維矩陣時,將未被填的部分補0。3.根據權利要求1所述的一種數據高效存儲方法,其特征在于,所述第一連通域的獲取方法為:在二維矩陣中,將以任意一個黑像素點作為中心點,使用區域生長法獲得與中心點相連的所有黑像素點的區域,之后除該區域外再使用任意黑像素點為中心點再次得到一個區域,直到矩陣中所有黑像素點被劃分到每個區域中,其中每個區域就是第一連通域。4.根據權利要求1所述的一種數據高效存儲方法,其特征在于,所述每個第一連通域的掃描方式的優選程度的計算方法為:式中表示第個連通域的掃描方式優選程度,表示第一目標像素點的數量,表示第二目標點的數量,表示第個連通域中黑像素點的總數量。5.根據權利要求1所述的一種數據高效存儲方法,其特征在于,所述根據每個第一連通域掃描方式的優選程度得到二維矩陣的全局掃描方式優選程度,根據全局掃描方式優選程度獲取全局最優掃描方式的方法為:根據所有第一連通域的掃描方式優選程度求均值得到全局掃描方式優選程度,獲取每種掃描方式對應的每個取值范圍,獲取全局掃描方式優選程度所屬的取值范圍,該范圍對應的掃描方式作為全局最優掃描方式。6.根據權利要求5所述的一種數據高效存儲方法,其特征在于,所述獲取每種掃描方式對應的每個取值范圍的具體方法為:
字掃描對應第一取值范圍,希爾伯特掃描對應第二取值范圍,螺旋掃描對應第三取值范圍。

技術總結


本發明涉及數據存儲技術領域,提出了一種數據高效存儲方法,包括:獲取待存儲數據,并轉換為二進制數據;根據所有的二進制數據得到二維矩陣,得到黑像素點的所有連通域,記為第一連通域;設定像素點的四領域和D鄰域,根據每個第一連通域內所有黑像素點的四領域和D領域的黑像素點個數得到所述連通域的掃描方式優選程度;根據每個第一連通域掃描方式的優選程度得到二維矩陣的全局掃描方式優選程度,根據全局掃描方式優選程度的范圍獲取全局最優掃描方式;使用全局最有掃描方式對二維矩陣進行掃描得到壓縮存儲的數據。本發明提高游程編碼的壓縮效率,達到在無損的基礎上增大壓縮率。率。率。


技術研發人員:

李強 曹書博 張效銘

受保護的技術使用者:

山東融匯通達網絡科技有限公司

技術研發日:

2022.12.14

技術公布日:

2023/1/16


文章投稿或轉載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-1-87973-0.html

來源:專利查詢檢索下載-實用文體寫作網版權所有,轉載請保留出處。本站文章發布于 2023-01-29 22:19:24

發表評論

驗證碼:
用戶名: 密碼: 匿名發表
評論列表 (有 條評論
2人圍觀
參與討論