一种基于三维引擎的重复数据检测方法、装置及设备制造方法及图纸

技术编号:36932201 阅读:22 留言:0更新日期:2023-03-22 18:54
本申请涉及数据处理技术领域,具体公开了一种基于三维引擎的重复数据检测方法、装置及设备,包括:获取三维引擎中的待检测数据,并确定所述待检测数据的总字节长度、所述待检测数据中预设字节数据长度的目标字节数据;基于所述总字节长度和所述目标字节数据计算所述待检测数据的第一摘要值,并判断所述三维引擎中是否存在第一摘要值与所述待检测数据的第一摘要值一致的数据;如果存在,则通过完整遍历的方式对所述待检测数据进行重复数据检测。本申请在判断出可能存在重复数据的基础上才进一步进行精确判断,对于重复率不高且长短不一的数据能够实现快速高效率的检测。的数据能够实现快速高效率的检测。的数据能够实现快速高效率的检测。

【技术实现步骤摘要】
一种基于三维引擎的重复数据检测方法、装置及设备


[0001]本申请涉及数据处理
,特别涉及一种基于三维引擎的重复数据检测方法、装置及设备。

技术介绍

[0002]三维引擎中包含大量数据,其中主要部分有几何数据和纹理数据等,这些数据数量多,并且长短不一,数据长度约在几十字节到几十兆字节(1兆字节=1048576字节)不等。三维引擎中的重复数据会重复占用系统内存及显示内存的空间,影响三维引擎的性能,对三维引擎中的重复数据进行检测有助于进一步的数据整合与复用,可以提高三维引擎启动及运行时的性能。
[0003]现有的重复检测方式一般需要遍历待检测数据中的全部字节,使用散列函数或者其他类似于散列函数的方法,计算数据的特征值,基于此特征值判断此数据是否与其他数据重复。然而在一般情况下,这些数据的重复率不高,并且其中大部分不构成重复的数据其前几十个或者几百个字节也是不同的。在待检测重复数据重复率不高的情况下,现有方案也需要遍历待检测数据中的全部字节,消耗较多的CPU时间。
[0004]因此,上述技术问题亟待本领域技术人员解决。

技术实现思路

[0005]有鉴于此,本申请的目的在于提供一种基于三维引擎的重复数据检测方法、装置、设备及存储介质,对于重复率不高且长短不一的数据能够实现快速高效率的检测。其具体方案如下:本申请的第一方面提供了一种基于三维引擎的重复数据检测方法,包括:获取三维引擎中的待检测数据,并确定所述待检测数据的总字节长度、所述待检测数据中预设字节数据长度的目标字节数据;基于所述总字节长度和所述目标字节数据计算所述待检测数据的第一摘要值,并判断所述三维引擎中是否存在第一摘要值与所述待检测数据的第一摘要值一致的数据;如果存在,则通过完整遍历的方式对所述待检测数据进行重复数据检测。
[0006]可选的,确定所述待检测数据中预设字节数据长度的目标字节数据,包括:计算所述总字节长度和最大字节数据长度中的最小值,并根据所述最小值确定出所述预设字节数据长度,以得到与所述预设字节数据长度对应的所述目标字节数据;其中,所述最大字节数据长度为根据所述待检测数据的数据类型设置的固定参数。
[0007]可选的,所述根据所述最小值确定出所述预设字节数据长度,包括:所述最大字节数据长度为4的整数倍,如果所述最小值为4的整数倍,则将所述最小值确定为所述预设字节数据长度;如果所述最小值不为4的整数倍,则将4的整数倍中小于所述最小值且与所述最小值的差值最小的数确定为所述预设字节数据长度。
[0008]可选的,所述基于所述总字节长度和所述目标字节数据计算所述待检测数据的第一摘要值,包括:通过异或运算的计算方式或利用散列函数对所述总字节长度和所述目标字节数据进行计算,得到第一计算结果;如果所述第一计算结果的位长度不超过32位,则直接将所述第一计算结果确定为所述待检测数据的第一摘要值;如果所述第一计算结果的位长度超过32位,则对所述第一计算结果中最后64位中的高32位与低32位进行异或运算,并将异或运算结果转换为32位无符号整数,得到所述待检测数据的第一摘要值。
[0009]可选的,通过异或运算的计算方式对所述总字节长度和所述目标字节数据进行计算,得到第一计算结果,包括:将所述总字节长度作为初始值,如果所述总字节长度超过32位,则将所述总字节长度的低32位作为第二计算结果;如果所述预设字节数据长度不为0,则以4字节为单位依次读取所述待检测数据中的字节数据,并将读取到的字节数据转换为32位无符号整数后与所述第二计算结果进行异或运算;将该异或运算结果作为新的所述第二计算结果以重复执行异或运算的步骤,直至读取的字节数据的长度达到所述预设字节数据长度,得到位长度不超过32位的最终异或运算结果;其中,最终异或运算结果为所述第一计算结果。
[0010]可选的,所述判断所述三维引擎中是否存在第一摘要值与所述待检测数据的第一摘要值一致的数据,包括:判断第一散列表中是否存在与所述待检测数据的第一摘要值一致的第一目标键,如果是,则判定所述三维引擎中存在第一摘要值与所述待检测数据的第一摘要值一致的数据;其中,所述第一散列表基于所述三维引擎中的历史数据构建得到;所述第一散列表中的键为历史数据的第一摘要值,键值为包含与键对应的历史数据的引用的数组;从所述第一散列表中读取所述第一目标键的第一目标键值,并将所述待检测数据的引用添加至所述第一目标键值中。
[0011]可选的,所述判断第一散列表中是否存在与所述待检测数据的第一摘要值一致的目标键之后,还包括:如果否,则在所述第一散列表中创建一个新的键值对;其中,新的键为所述待检测数据的第一摘要值,新的键值为包含所述待检测数据的引用的数组。
[0012]可选的,所述通过完整遍历的方式对所述待检测数据进行重复数据检测,包括:遍历所述第一目标键值中的各项,以判断各项对应数据是否计算过第二摘要值,如果否,则计算各项对应数据的第二摘要值并将第二摘要值添加至对应项中;将除所述待检测数据的对应项之外的其他项对应数据的第二摘要值作为新的键添加至第二散列表中;其中,所述第二散列表基于所述三维引擎中的历史数据构建得到;所述第二散列表中的键为历史数据的第二摘要值,键值为任意标记;判断所述第二散列表中是否存在与所述待检测数据的第二摘要值一致的第二目标键,如果是,则判定所述三维引擎中存在与所述待检测数据重复的数据,如果否,则判定
所述三维引擎中不存在与所述待检测数据重复的数据,并将所述待检测数据的第二摘要值作为新键添加至所述第二散列表中。
[0013]本申请的第二方面提供了一种基于三维引擎的重复数据检测装置,包括:获取及确定模块,用于获取三维引擎中的待检测数据,并确定所述待检测数据的总字节长度、所述待检测数据中预设字节数据长度的目标字节数据;第一检测模块,用于基于所述总字节长度和所述目标字节数据计算所述待检测数据的第一摘要值,并判断所述三维引擎中是否存在第一摘要值与所述待检测数据的第一摘要值一致的数据;第二检测模块,用于如果存在,则通过完整遍历的方式对所述待检测数据进行重复数据检测。
[0014]本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述基于三维引擎的重复数据检测方法。
[0015]本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述基于三维引擎的重复数据检测方法。
[0016]本申请中,先获取三维引擎中的待检测数据,并确定所述待检测数据的总字节长度、所述待检测数据中预设字节数据长度的目标字节数据;然后基于所述总字节长度和所述目标字节数据计算所述待检测数据的第一摘要值,并判断所述三维引擎中是否存在第一摘要值与所述待检测数据的第一摘要值一致的数据;如果存在,则通过完整遍历的方式对所述待检测数据进行重复数据检测。可见,本申请主要是面向三维引擎的重复数据检测,通过基于待检测数据的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于三维引擎的重复数据检测方法,其特征在于,包括:获取三维引擎中的待检测数据,并确定所述待检测数据的总字节长度、所述待检测数据中预设字节数据长度的目标字节数据;基于所述总字节长度和所述目标字节数据计算所述待检测数据的第一摘要值,并判断所述三维引擎中是否存在第一摘要值与所述待检测数据的第一摘要值一致的数据;如果存在,则通过完整遍历的方式对所述待检测数据进行重复数据检测。2.根据权利要求1所述的基于三维引擎的重复数据检测方法,其特征在于,确定所述待检测数据中预设字节数据长度的目标字节数据,包括:计算所述总字节长度和最大字节数据长度中的最小值,并根据所述最小值确定出所述预设字节数据长度,以得到与所述预设字节数据长度对应的所述目标字节数据;其中,所述最大字节数据长度为根据所述待检测数据的数据类型设置的固定参数。3.根据权利要求2所述的基于三维引擎的重复数据检测方法,其特征在于,所述根据所述最小值确定出所述预设字节数据长度,包括:所述最大字节数据长度为4的整数倍,如果所述最小值为4的整数倍,则将所述最小值确定为所述预设字节数据长度;如果所述最小值不为4的整数倍,则将4的整数倍中小于所述最小值且与所述最小值的差值最小的数确定为所述预设字节数据长度。4.根据权利要求1所述的基于三维引擎的重复数据检测方法,其特征在于,所述基于所述总字节长度和所述目标字节数据计算所述待检测数据的第一摘要值,包括:通过异或运算的计算方式或利用散列函数对所述总字节长度和所述目标字节数据进行计算,得到第一计算结果;如果所述第一计算结果的位长度不超过32位,则直接将所述第一计算结果确定为所述待检测数据的第一摘要值;如果所述第一计算结果的位长度超过32位,则对所述第一计算结果中最后64位中的高32位与低32位进行异或运算,并将异或运算结果转换为32位无符号整数,得到所述待检测数据的第一摘要值。5.根据权利要求1所述的基于三维引擎的重复数据检测方法,其特征在于,通过异或运算的计算方式对所述总字节长度和所述目标字节数据进行计算,得到第一计算结果,包括:将所述总字节长度作为初始值,如果所述总字节长度超过32位,则将所述总字节长度的低32位作为第二计算结果;如果所述预设字节数据长度不为0,则以4字节为单位依次读取所述待检测数据中的字节数据,并将读取到的字节数据转换为32位无符号整数后与所述第二计算结果进行异或运算;将该异或运算结果作为新的所述第二计算结果以重复执行异或运算的步骤,直至读取的字节数据的长度达到所述预设字节数据长度,得到位长度不超过32位的最终异或运算结果;其中,最终异或运算结果为所述第一计算结果。6.根据权利要求...

【专利技术属性】
技术研发人员:杨斌丛金昌吕雪琴杨磊王翠英
申请(专利权)人:山东捷瑞数字科技股份有限公司
类型:发明
国别省市:

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

1