本发明涉及计算机通讯,特别是一种文件去重方法及其系统。
背景技术:
1、目前对文件去重都是采用对文件计算md5或者sha1,如果相同则判定文件是重复文件。但是对于图片和视频文件,很多会进行转码,格式转换,加水印,去水印等操作,导致md5或sha1值改变,则无法判定文件是相似文件,本质的内容是差不多的,这样会大量浪费存储的空间。
技术实现思路
1、为了解决上述技术问题,本发明提供一种文件去重方法及其系统,能够大量减少相似图片和视频所浪费空间。
2、本发明采用以下技术方案实现:
3、一种文件去重方法,所述方法包括以下步骤:
4、步骤s1、扫描需要去重的目录;
5、步骤s2、当扫描到图片时,记录图片的分辨率、大小;当扫描到视频时,记录视频的分辨率、大小、时长、帧率、码率以及压缩格式;
6、步骤s3、对于图片,生成宽高相同的缩略图a;对于视频,根据视频时长和预设的间隔提取对应时间点的宽高相同的缩略图b;
7、步骤s4、通过对所有缩略图a两两计算汉明距离,将汉明距离小于预设阈值的缩略图a当做相似的缩略图a;
8、步骤s5、在所有相似的缩略图a中,优先选择保留分辨率最大的缩略图a其次选择保留文件大小最大的缩略图a,剩余的相似缩略图a全部删除;
9、步骤s6、通过对所有视频中相同对应时间点的缩略图b,两两计算汉明距离,将汉明距离小于预设阈值的缩略图b相对应的视频当做相似的视频;
10、步骤s7、在所有相似视频中,优先选择保留时长最长的视频,其次选择保留分辨率最大的视频,然后选择保留文件大小最大的视频,剩余的相似视频全部删除。
11、优选的,所述步骤s1进一步具体为:通过直接读取ntfs格式的mft表加载目录文件,以加快读取速度。
12、优选的,所述步骤s3进一步具体为:所述缩略图a和缩略图b的分辨率均为16*16。
13、优选的,所述步骤s4进一步具体为:通过以下方式计算汉明距离:
14、(1)将缩略图a编码为16*16的矩阵;
15、(2)通过离散余弦变换算法dct保留左上角4*4的矩阵;
16、(3)将4*4的矩阵转化为1*16的数组,并保存长度为16的字符串,即图片特征向量;
17、(4)获取每个缩略图a对应的图片特征向量,通过比较两个缩略图a的图片特征向量的每个元素,计算汉明距离;
18、所述步骤s6中计算汉明距离的方式与步骤s4中计算汉明距离的方式相同。
19、优选的,所述步骤s4进一步具体为:所述预设阈值的范围为1-5。
20、一种文件去重系统,所述系统包括扫描模块、记录模块、生成模块、计算模块a、图片保存模块、计算模块b、视频保存模块;
21、扫描模块,扫描需要去重的目录;
22、记录模块,当扫描到图片时,记录图片的分辨率、大小;当扫描到视频时,记录视频的分辨率、大小、时长、帧率、码率以及压缩格式;
23、生成模块,对于图片,生成宽高相同的缩略图a;对于视频,根据视频时长和预设的间隔提取对应时间点的宽高相同的缩略图b;
24、计算模块a,通过对所有缩略图a两两计算汉明距离,将汉明距离小于预设阈值的缩略图a当做相似的缩略图a;
25、图片保存模块,在所有相似的缩略图a中,优先选择保留分辨率最大的缩略图a其次选择保留文件大小最大的缩略图a,剩余的相似缩略图a全部删除;
26、计算模块b,过对所有视频中相同对应时间点的缩略图b,两两计算汉明距离,将汉明距离小于预设阈值的缩略图b相对应的视频当做相似的视频;
27、视频保存模块,在所有相似视频中,优先选择保留时长最长的视频,其次选择保留分辨率最大的视频,然后选择保留文件大小最大的视频,剩余的相似视频全部删除。
28、优选的,所述扫描模块进一步具体为:通过直接读取ntfs格式的mft表加载目录文件,以加快读取速度。
29、优选的,所述生成模块进一步具体为:所述缩略图a和缩略图b的分辨率均为16*16。
30、优选的,所述计算模块a进一步具体为:通过以下方式计算汉明距离:
31、(1)将缩略图a编码为16*16的矩阵;
32、(2)通过离散余弦变换算法dct保留左上角4*4的矩阵;
33、(3)将4*4的矩阵转化为1*16的数组,并保存长度为16的字符串,即图片特征向量;
34、(4)获取每个缩略图a对应的图片特征向量,通过比较两个缩略图a的图片特征向量的每个元素,计算汉明距离;
35、所述计算模块b中计算汉明距离的方式与计算模块a中计算汉明距离的方式相同。
36、优选的,所述计算模块a进一步具体为:所述预设阈值的范围为1-5。
37、本发明的有益效果:
38、本发明提供一种文件去重方法及其系统,能够大量减少相似图片和视频所浪费空间。
1.一种文件去重方法,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的一种文件去重方法,其特征在于:所述步骤s1进一步具体为:通过直接读取ntfs格式的mft表加载目录文件,以加快读取速度。
3.根据权利要求1所述的一种文件去重方法,其特征在于:所述步骤s3进一步具体为:所述缩略图a和缩略图b的分辨率均为16*16。
4.根据权利要求3所述的一种文件去重方法,其特征在于:所述步骤s4进一步具体为:通过以下方式计算汉明距离:
5.根据权利要求1所述的一种文件去重方法,其特征在于:所述步骤s4进一步具体为:所述预设阈值的范围为1-5。
6.一种文件去重系统,其特征在于:所述系统包括扫描模块、记录模块、生成模块、计算模块a、图片保存模块、计算模块b、视频保存模块;
7.根据权利要求6所述的一种文件去重系统,其特征在于:所述扫描模块进一步具体为:通过直接读取ntfs格式的mft表加载目录文件,以加快读取速度。
8.根据权利要求6所述的一种文件去重系统,其特征在于:所述生成模块进一步具体为:所述缩略图a和缩略图b的分辨率均为16*16。
9.根据权利要求8所述的一种文件去重系统,其特征在于:所述计算模块a进一步具体为:通过以下方式计算汉明距离:
10.根据权利要求6所述的一种文件去重系统,其特征在于:所述计算模块a进一步具体为:所述预设阈值的范围为1-5。