一种数据高效存储方法技术

技术编号:36406107 阅读:9 留言:0更新日期:2023-01-18 10:14
本发明专利技术涉及数据存储技术领域,提出了一种数据高效存储方法,包括:获取待存储数据,并转换为二进制数据;根据所有的二进制数据得到二维矩阵,得到黑色像素点的所有连通域,记为第一连通域;设定像素点的四领域和D邻域,根据每个第一连通域内所有黑色像素点的四领域和D领域的黑色像素点个数得到所述连通域的扫描方式优选程度;根据每个第一连通域扫描方式的优选程度得到二维矩阵的全局扫描方式优选程度,根据全局扫描方式优选程度的范围获取全局最优扫描方式;使用全局最有扫描方式对二维矩阵进行扫描得到压缩存储的数据。本发明专利技术提高游程编码的压缩效率,达到在无损的基础上增大压缩率。率。率。

【技术实现步骤摘要】
一种数据高效存储方法


[0001]本专利技术涉及数据存储领域,具体涉及一种数据高效存储方法。

技术介绍

[0002]在对数据进行存储时,往往需要进行压缩处理,数据压缩是基于数据的冗余性,其中游程编码是常用的数据压缩方法之一,但游程编码压缩依赖于连续重复的数据段,若连续重复的数据段少且短,则采用游程编码进行压缩时效果较差。现有的压缩方法通常采用固定的扫描方法,例如对数据进行扫描时,往往采用的是光栅扫描法,光栅扫描是逐行进行扫描的。然而,不同的数据有不同的特点,采用固定的扫描方式难以使其得到好的压缩性能,例如光栅扫描法通常会使扫描得到的连续重复的数据段较少,导致最终的压缩效果较差。

技术实现思路

[0003]本专利技术提供一种数据高效存储方法,以解决现有的采用游程编码进行压缩时效果较差的问题,所采用的技术方案具体如下:本专利技术一个实施例提供了一种数据高效存储方法,该方法包括以下步骤:获取待存储数据,并转换为二进制数据;根据所有的二进制数据得到二维矩阵,得到二维矩阵中值为1的点作为黑色像素点,得到黑色像素点的所有连通域,记为第一连通域;以像素点上下左右四个方向作为像素点的四领域,以像素点左上、左下、右上和右下四个方向作为像素点的D领域,得到3
×
3大小的滑窗,获取每个第一连通域内所有黑色像素点的四领域中存在黑色像素点的第一目标像素点个数,获取每个第一连通域内所有的黑色像素点的D领域中存在黑色像素点的第二目标像素点个数,第一目标像素点个数和第二目标像素点个数做差与每个第一连通域中黑色像素点的总数进行比较得到每个第一连通域的扫描方式的优选程度;根据每个第一连通域扫描方式的优选程度得到二维矩阵的全局扫描方式优选程度,根据全局扫描方式优选程度获取全局最优扫描方式;使用全局最优扫描方式对二维矩阵进行扫描得到压缩存储的数据。
[0004]优选的,所述根据所有的二进制数据得到二维矩阵方法为:获得所有二进制数据的位数,对其进行开方并向上取整,向上取整后的数字就是二维矩阵的长宽,将二维数据利用光栅扫描法填入二维矩阵,若二进制数据没有填满二维矩阵时,将未被填的部分补0。
[0005]优选的,所述第一连通域的获取方法为:在二维矩阵中,将以任意一个黑色像素点作为中心点,使用区域生长法获得与中心点相连的所有黑色像素点的区域,之后除该区域外再使用任意黑色像素点为中心点再次得到一个区域,直到矩阵中所有黑色像素点被划分到每个区域中,其中每个区域就是第一
连通域。
[0006]优选的,所述每个第一连通域的扫描方式的优选程度的计算方法为:式中表示第个连通域的扫描方式优选程度,表示第一目标像素点的数量,表示第二目标点的数量,表示第个连通域中黑色像素点的总数量。
[0007]优选的,所述根据每个第一连通域扫描方式的优选程度得到二维矩阵的全局扫描方式优选程度,根据全局扫描方式优选程度获取全局最优扫描方式的方法为:根据所有第一连通域的扫描方式优选程度求均值得到全局扫描方式优选程度,获取每种扫描方式对应的每个取值范围,获取全局扫描方式优选程度所属的取值范围,该范围对应的扫描方式作为全局最优扫描方式。
[0008]优选的,所述获取每种扫描方式对应的每个取值范围的具体方法为:字扫描对应第一取值范围,希尔伯特扫描对应第二取值范围,螺旋扫描对应第三取值范围。
[0009]本专利技术的有益效果是:本专利技术提出了一种数据高效存储方法,通过对待进行压缩存储的数据进行编码转换,构建二维矩阵,通过分析数据的分布,自适应选择最优的扫描方式,使扫描得到的一维序列中连续重复的数据段足够多且足够长,从而提高游程编码的压缩效率,达到在无损的基础上增大压缩率的目的。
附图说明
[0010]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1为本专利技术的一个实施例所提供一种数据高效存储方法的流程示意图;图2为不同扫描方式的效果图与示意图;图3为邻域示意图。
具体实施方式
[0012]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0013]请参阅图1,其示出了本专利技术一个实施例提供的一种数据高效存储方法流程图,该方法包括以下步骤:步骤S001、采集待存储数据,将数据进行预处理后转换为二进制数据。
[0014]由于计算机只能识别二进制数据,因此无论任何数据,例如传感器输出的数据、文本数据都需要转换成二进制数据,将数据转换成二进制数据的方法是公知的,例如采集的
数据全部转换为ASCII值即十进制形式存在,然后再将这些十进制数据转换成二进制数据;其中十进制数据往往存在一定的差异,而二进制数相对于十进制数存在更大的空间冗余度,计算机在对这些二进制数据进行处理和分析可以获得较大的压缩率,减少数据的存储空间。
[0015]本实施例为了叙述方便和数据示例,接下来以将十进制整数转换为4位二进制数据进行叙述,实施者可以根据具体采集的数据转换成相应位数的二进制数据。
[0016]步骤S002、将二进制数据构建二维矩阵,根据二维矩阵种前景数据点的聚集程度和分布方向自适应获取最优扫描方式。
[0017]首先构建二维矩阵,第一步获取到的二进制数据为一维数据,例如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的数字,光栅扫描的填充方式为从左到右填满第一行之后填第二行的最左边再次从左到右填充。
[0018]进一步的获取目标连通域,构建的二维矩阵中是由0、1两个值组成的二值图像,二维矩阵可视化效果图如二维矩阵可视化示意图1所示。在进行编码转换时,为了便于解码,通常采用的是定长编码,定长编码存在大量的补零位,因此,二进制序列中“0”的个数要远超于“本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据高效存储方法,其特征在于,该方法包括以下步骤:获取待存储数据,并转换为二进制数据;根据所有的二进制数据得到二维矩阵,得到二维矩阵中值为1的点作为黑色像素点,得到黑色像素点的所有连通域,记为第一连通域;以像素点上下左右四个方向作为像素点的四领域,以像素点左上、左下、右上和右下四个方向作为像素点的D领域,得到3
×
3大小的滑窗,获取每个第一连通域内所有黑色像素点的四领域中存在黑色像素点的第一目标像素点个数,获取每个第一连通域内所有的黑色像素点的D领域中存在黑色像素点的第二目标像素点个数,第一目标像素点个数和第二目标像素点个数做差与每个第一连通域中黑色像素点的总数进行比较得到每个第一连通域的扫描方式的优选程度;根据每个第一连通域扫描方式的优选程度得到二维矩阵的全局扫描方式优选程度,根据全局扫描方式优选程度获取全局最优扫描方式;使用全局最优扫描方式对二维矩阵进行扫描得到压缩存储的数据。2.根据权利要求1所述的一种数据高效存储方法,其特征在于,所述根据所有的二进制数据得到二维矩阵方法为:获得所有二进制数据的位数,对其进行开方并向上取整,向上取整后的数字就是二维矩阵的长宽,将二维数据利用光栅扫描法填入二维矩阵,若二进制数据没有填满二维矩阵时,将未被填的部分补0。3.根据权利要求1所...

【专利技术属性】
技术研发人员:李强曹书博张效铭
申请(专利权)人:山东融汇通达网络科技有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1