CN104050180B - 文件指纹处理方法及装置 - Google Patents

文件指纹处理方法及装置 Download PDF

Info

Publication number
CN104050180B
CN104050180B CN201310079446.3A CN201310079446A CN104050180B CN 104050180 B CN104050180 B CN 104050180B CN 201310079446 A CN201310079446 A CN 201310079446A CN 104050180 B CN104050180 B CN 104050180B
Authority
CN
China
Prior art keywords
memory space
round robin
space
data partition
robin data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310079446.3A
Other languages
English (en)
Other versions
CN104050180A (zh
Inventor
张德明
张琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TONGLING HUIHENG ELECTRONIC TECHNOLOGY Co.,Ltd.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310079446.3A priority Critical patent/CN104050180B/zh
Publication of CN104050180A publication Critical patent/CN104050180A/zh
Application granted granted Critical
Publication of CN104050180B publication Critical patent/CN104050180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content

Landscapes

  • Engineering & Computer Science (AREA)
  • Library & Information Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Collating Specific Patterns (AREA)

Abstract

本发明实施例提供一种文件指纹处理方法及装置。本发明文件指纹处理方法,包括:确定文件指纹对应的哈希地址,所述哈希地址指向一个预先分配的存储空间,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到;确定所述哈希地址指向的存储空间的首地址;根据所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间中加入所述文件指纹对应的文件信息,并更新所述存储空间内已添加信息的长度。本发明实施例保证了音频信息数据的完整性。同时提高了存储空间的利用率和对音频信息进行检索时的匹配成功率。

Description

文件指纹处理方法及装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种文件指纹处理方法及装置。
背景技术
音频指纹技术是当前流行的一种音频信息检索技术。该技术通过对原始音频信号进行时频变换后在频域提取特征信息即音频指纹,将特征信息保留下来构建特征库。当需要进行音频检索时,对待检索音频用同样的方法提取音频指纹,然后到特征库进行匹配,当匹配成功时就能得到待检索音频的属性信息,如音频名称、歌手名、发行年代等。
通常,音频指纹用一个哈希矢量来表征,因此可以构建一个地址长度与哈希矢量的位数对应的哈希表作为特征库。具体地,在音频信号中提取出音频指纹后,在音频指纹对应的哈希地址中加入音频信号对应的信息,包括属性信息、提取的指纹对应在音频信号中的时间片段等。当不同的音频信号提取出相同的音频指纹时,就出现了哈希地址冲突现象。特别是基于海量音频信号建立一个比较完备的数据库时,将会出现大量的地址冲突。如果由于地址冲突导致不能在相应的哈希地址中存储后面处理的音频信号的信息,或者将前面存入的音频信号的信息覆盖掉,都会导致使用数据库进行音频检索时匹配成功率下降。
现有音频检索系统在建立哈希表时根据系统限制确定均匀的哈希表深度,在处理地址冲突时,主要的解决方法是增加哈希表的深度,即在同一个哈希地址下开辟更大的空间存放每一个冲突的音频信号对应的信息,但这会造成哈希表的极大冗余,导致音频检索效率低下和存储空间的浪费。
发明内容
本发明实施例提供一种文件指纹处理方法及装置,用以解决现有技术中在处理海量音频信号建立数据库时出现大量哈希地址冲突造成音频信号不能正常存储,导致音频信号的指纹丢失的问题。
第一方面,本发明实施例提供一种文件指纹处理方法,包括:
确定文件指纹对应的哈希地址,所述哈希地址指向一个预先分配的存储空间,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到;
确定所述哈希地址指向的存储空间的首地址;
根据所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间中加入所述文件指纹对应的文件信息,并更新所述存储空间内已添加信息的长度。
在第一方面的第一种可能的实现方式中,还包括:
在所有文件指纹处理完成之后,根据各哈希地址指向的存储空间内已添加信息的长度,释放各存储空间内未使用的空间。
根据第一方面、第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述确定文件指纹对应的哈希地址之前,还包括:
根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度;
根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间。
根据第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度,包括:
根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间占所有哈希地址指向的总存储空间的比例;
根据以下公式确定各哈希地址指向的存储空间的可用空间长度:
Li=|K*θi|,Li为哈希地址i指向的存储空间的可用空间长度,K为所有哈希地址指向的总存储空间的长度,θi为哈希地址i指向的存储空间占所有哈希地址指向的总存储空间的比例,其中,N为文件指纹的比特数。
根据第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间,包括:
创建特征库,所述特征库包括第一空间、第二空间和第三空间;
将各哈希地址指向的存储空间的可用空间长度保存在所述第一空间;
根据各哈希地址指向的存储空间的可用空间长度,将所述第三空间划分为各哈希地址指向的存储空间,确定各哈希地址指向的存储空间的首地址,并将各哈希地址指向的存储空间的首地址保存在所述第二空间。
根据第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述释放各存储空间内未使用的空间之后,还包括:
将所述第一空间中保存的所述存储空间的可用空间长度更新为所述存储空间内已添加信息的长度。
根据第一方面、第一方面的第一种至第五种可能的实现方式中的任意一种,在第一方面的第六种可能的实现方式中,所述文件指纹为音频指纹,所述文件指纹对应的文件信息包括音频信号的属性信息或所述属性信息的索引,以及所述音频信号中所述音频指纹对应的时间片段;所述确定文件指纹对应的哈希地址之前,还包括:
将所述音频信号分为至少一个时间片段;
从每个时间片段中提取至少一个音频指纹。
根据第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述音频指纹由矢量起点的频率值、矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差表征,所述矢量起点和矢量终点根据所述音频指纹对应的时间片段的频谱图确定;所述统计得到的文件指纹分布特性包括:
矢量起点的频率值较小的音频指纹多于矢量起点的频率值较大的音频指纹,矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较小的音频指纹多于矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较大的音频指纹。
第二方面,本发明实施例提供一种文件指纹处理装置,包括:
哈希地址确定模块,用于确定文件指纹对应的哈希地址,所述哈希地址指向一个预先分配的存储空间,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到;
首地址确定模块,用于确定所述哈希地址指向的存储空间的首地址;
文件信息加入模块,用于根据所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间中加入所述文件指纹对应的文件信息,并更新所述存储空间内已添加信息的长度。
在第二方面的第一种可能的实现方式中,还包括:
空间释放模块,用于在所有文件指纹处理完成之后,根据各哈希地址指向的存储空间内已添加信息的长度,释放各存储空间内未使用的空间。
根据第二方面、第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,还包括:
长度确定模块,用于根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度;
存储空间分配模块,用于根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间。
根据第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,长度确定模块包括:
比例确定子单元,用于根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间占所有哈希地址指向的总存储空间的比例;
长度确定子单元,用于根据以下公式确定各哈希地址指向的存储空间的可用空间长度:
Li=|K*θi|,Li为哈希地址i指向的存储空间的可用空间长度,K为所有哈希地址指向的总存储空间的长度,θi为哈希地址i指向的存储空间占所有哈希地址指向的总存储空间的比例,其中,N为文件指纹的比特数。
根据第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,存储空间分配模块包括:
特征库创建子单元,用于创建特征库,所述特征库包括第一空间、第二空间和第三空间;
长度保存子单元,用于将各哈希地址指向的存储空间的可用空间长度保存在所述第一空间;
首地址保存子单元,用于根据各哈希地址指向的存储空间的可用空间长度,将所述第三空间划分为各哈希地址指向的存储空间,确定各哈希地址指向的存储空间的首地址,并将各哈希地址指向的存储空间的首地址保存在所述第二空间。
根据第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,还包括:
长度更新模块,用于将所述第一空间中保存的所述存储空间的可用空间长度更新为所述存储空间内已添加信息的长度。
根据第二方面、第二方面的第二种至第五种可能的实现方式中的任意一种,在第二方面的第六种可能的实现方式中,所述文件指纹为音频指纹,所述文件指纹对应的文件信息包括音频信号的属性信息或所述属性信息的索引,以及所述音频信号中所述音频指纹对应的时间片段;
还包括:
时间片段划分单元,用于在所述哈希地址确定模块确定文件指纹对应的哈希地址之前,将所述音频信号分为至少一个时间片段;
音频指纹提取单元,用于从每个时间片段中提取至少一个音频指纹。
根据第二方面的第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述音频指纹由矢量起点的频率值、矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差表征,所述矢量起点和矢量终点根据所述音频指纹对应的时间片段的频谱图确定;所述统计得到的文件指纹分布特性包括:
矢量起点的频率值较小的音频指纹多于矢量起点的频率值较大的音频指纹,矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较小的音频指纹多于矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较大的音频指纹。
本发明实施例文件指纹处理方法及装置,通过确定所述文件指纹对应的哈希地址,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到,并根据所述哈希地址对应的所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间内加入所述文件指纹对应的文件信息,一定程度上解决了在处理海量音频信号时,从不同的音频信号中提取到相同的文件指纹出现哈希地址冲突,从而造成后续处理的音频信号的信息不能在相应的哈希地址对应的空间中存储或者将已经存入的音频信号的音频信息冲掉的问题,保证了音频信息数据的完整性。同时提高了存储空间的利用率和对音频信息进行检索时的匹配成功率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的文件指纹处理方法的流程图;
图2为本发明实施例二所提供的文件指纹处理方法的流程图;
图3为本发明上述各实施例所提供的文件指纹处理方法的示意图;
图4为本发明实施例四所提供的文件指纹处理装置的结构示意图;
图5为本发明实施例五所提供的文件指纹处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一所提供的文件指纹处理方法的流程图。本实施例的方法适用于对海量音频信息进行有效的管理和使用的情况。该方法由配置在计算机中的文件指纹处理装置执行,该装置通常以硬件和/或软件的方式来实现。本实施例的方法包括如下步骤:
步骤110、确定文件指纹对应的哈希地址,所述哈希地址指向一个预先分配的存储空间,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到;
在步骤110中,所述文件指纹优选为音频指纹。所述音频指纹是从音频信号中提取获得的,并且可以通过一个哈希矢量来表征,在所述音频信号的频谱图中找一特定峰值点作为矢量起点,该特定峰值点的确定过程:通过在频谱图中选取一个点,判断在以选取的点为中心的一定时间和频率范围的局部区域内该点的幅值是否为最大,若该点的幅值最大,则将该点作为该局部区域的峰值点,若不是最大,则重新选取一个点,重复上述过程,直至将该频谱图中的所有峰值点确定完毕,之后选取该频谱图中的一个峰值点作为矢量起点,再以矢量起点为中心的搜索范围内搜索到其他的峰值点作为矢量终点。设定F1是矢量起点的频率值,T1是矢量起点的时间值,F2是矢量终点的频率值,T2是矢量终点的时间值,则所述文件指纹的结构为[F1,ΔF,ΔT]。其中,F1、ΔF和ΔT分别用二进制数表示,ΔF=F2-F1,ΔT=T2-T1。如果用U、V和W分别表示F1、ΔF和ΔT的二进制位数,上述搜索范围根据V对应的矢量起点和矢量终点的最大时间差值和W对应的矢量起点和矢量终点的最大频率差值确定,则所述文件指纹可以用N个二进制位数表示并且N=U+V+W,从而可以根据哈希矢量对应的十进制数确定所述文件指纹对应的哈希地址。
步骤120、确定所述哈希地址指向的存储空间的首地址;
步骤130、根据所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间中加入所述文件指纹对应的文件信息,并更新所述存储空间内已添加信息的长度。
当所述文件指纹为音频指纹时,所述文件指纹对应的文件信息包括音频信号的属性信息或所述属性信息的索引,以及所述音频信号中所述音频指纹对应的时间片段,其中,音频信号的属性信息可以包括歌曲名、歌手名、歌曲类型、歌曲发行年代;所述存储空间内已添加信息的长度优选地通过所述哈希地址对应的一个长度统计变量来表示,并且设定其初始值为零,即用来统计所述哈希地址对应的所述存储空间内已存储的文件信息的个数,当在所述哈希地址对应的所述存储空间中加入一所述文件指纹对应的文件信息时,则对所述长度统计变量执行加一操作,以更新所述存储空间内已添加信息的长度。
本发明实施例提供的文件指纹处理方法,通过根据文件指纹结构确定所述文件指纹对应的哈希地址,进一步的根据所述哈希地址对应的所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间内加入所述文件指纹对应的文件信息。一定程度上解决了在处理海量音频信号时,从不同的音频信号中提取到相同的文件指纹出现哈希地址冲突,从而造成后续处理的音频信号的信息不能在相应的哈希地址对应的空间中存储或者将已经存入的音频信号的音频信息冲掉的问题,保证了音频信息数据的完整性。同时提高了存储空间的利用率和对音频信息进行检索时的匹配成功率。
进一步的,在本实施例中,在所有文件指纹处理完成之后,根据各哈希地址指向的存储空间内已添加信息的长度,释放各存储空间内未使用的空间。
具体的,当将待处理的所有所述文件指纹对应的文件信息存储在所述文件指纹对应的所述存储空间中后,如果所述哈希地址指向的存储空间内已添加信息的长度小于预先分配的所述哈希地址指向的存储空间的长度,则释放所述哈希地址指向的存储空间内未使用的空间。实现了在处理完所有文件指纹后,能够自适应调整哈希表结构,提高了存储空间的利用率。
实施例二
图2为本发明实施例二所提供的文件指纹处理方法的流程图。本发明实施例以上述实施例为基础,参照图2,在本实施例中,步骤110之前还包括:
步骤210、根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度;
当所述文件指纹为音频指纹时,所述统计得到的文件指纹分布特性可以通过F1、ΔF和ΔT的分布特性来表征,例如,矢量起点F1较小的音频指纹较多,矢量频率差ΔF和时间差ΔT较小的音频指纹较多。步骤210的具体执行操作为:根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间占所有哈希地址指向的总存储空间的比例;根据以下公式确定各哈希地址指向的存储空间的可用空间长度:
Li=|K*θi|,Li为哈希地址i指向的存储空间的可用空间长度,K为所有哈希地址指向的总存储空间的长度,θi为哈希地址i指向的存储空间占所有哈希地址指向的总存储空间的比例,其中,N为文件指纹的比特数。
步骤220、根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间。
步骤220的具体执行操作为:创建特征库,所述特征库包括第一空间、第二空间和第三空间;将各哈希地址指向的存储空间的可用空间长度保存在所述第一空间;根据各哈希地址指向的存储空间的可用空间长度,将所述第三空间划分为各哈希地址指向的存储空间,确定各哈希地址指向的存储空间的首地址,并将各哈希地址指向的存储空间的首地址保存在所述第二空间。在此需要说明的是:第一空间、第二空间和第三空间中存放的内容是非特定的,即哈希地址指向的存储空间的可用空间长度即可以保存在所述第一空间,也可以保存在所述第二空间或者第三空间内,其他两个空间中的内容也可以存放在第一空间、第二空间或第三空间。总之,本发明并不对第一空间、第二空间和第三空间中存放的内容进行限定。
本发明实施例提供的文件指纹处理方法,通过根据统计得到的文件指纹分布特性,以确定各哈希地址指向的存储空间的可用空间长度。并且根据各哈希地址指向的存储空间的可用空间长度,在所述第三空间中为各哈希地址分配对应的存储空间。因此避免了现有技术中建立等深度的哈希表时造成存储空间浪费和检索音频信息时效率低的问题。
具体的,在上述实施例中,在所述释放各存储空间内未使用的空间之后,优选的地还可以包括:将所述第一空间中保存的所述存储空间的可用空间长度更新为所述存储空间内已添加信息的长度。
进一步的,在本发明上述实施例中,所述确定文件指纹对应的哈希地址之前的操作还可以包括:将音频信号分为至少一个时间片段;从每个时间片段中提取至少一个音频指纹。所述音频指纹由矢量起点的频率值、矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差表征,所述矢量起点和矢量终点根据所述音频指纹对应的时间片段的频谱图确定;相应地,表征所述音频指纹的哈希矢量根据所述音频指纹对应时间片段的频谱图确定。
实施例三
为让本发明上述各实施例所提供的文件指纹处理方法更加直观,在此将本发明上述各实施例所提供的文件指纹结构进行详细介绍。首先在频谱图中找一特定峰值点作为矢量起点,在矢量起点的搜索范围内搜索到符合条件的峰值点作为矢量终点。设定F1是矢量起点的频率值,T1是矢量起点的时间值,F2是是矢量终点的频率值,T2是矢量终点的时间值,如果第P首歌的第Q个时间段内提取出一组哈希矢量起点对应的坐标为[20,24],矢量终点对应的坐标为[30,28],即F1=24,T1=20,F2=28,T2=30,则ΔF=F2-F1=4,ΔT=T2-T1=10。分别将F1、ΔF和ΔT用二进制数表示,在本实施例中,如果用U、V和W分别表示F1、ΔF和ΔT的二进制位数,设定U=8,V=6,W=6,则对应的文件指纹表示为[00011000 000100 001010],并且该文件指纹可以用N个二进制位数表示,N=U+V+W=20。即在哈希表中哈希地址为98570对应的空间内存储第P首歌的相关信息,如歌曲名、歌手名、类型、发行年代或者具体信息对应的索引信息等,其中,哈希表中哈希地址为98570对应的空间即在上述实施例中提及的第三空间中分配的。
根据上述的文件指纹结构以及大量的音频信号数据训练,可以统计得到文件指纹分布特性,所述统计得到的文件指纹分布特性包括:矢量起点的频率值较小的音频指纹多于矢量起点的频率值较大的音频指纹,矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较小的音频指纹多于矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较大的音频指纹。下面结合图3详细介绍根据文件指纹分布特性将总存储空间划分为第一空间、第二空间和第三空间,以及如何向第三空间中加入各文件指纹对应的文件信息。图3为本发明上述各实施例所提供的文件指纹处理方法的示意图。参照图3,将各哈希地址指向的存储空间的可用空间长度保存在所述第一空间;将各哈希地址指向的存储空间的首地址保存在所述第二空间;根据各哈希地址指向的存储空间的可用空间长度,将所述第三空间划分为各哈希地址指向的存储空间,并将各哈希地址指向的存储空间中加入所述文件指纹对应的文件信息。
具体的,根据文件指纹分布特性将总存储空间划分为第一空间、第二空间和第三空间。Li、K、θi和N代表的意义与上述实施例中的相同,在此不再赘述。其中,所述第一空间大小为2N,用于存放各哈希地址i指向的存储空间的可用空间长度Li。Li的大小可以通过公式Li=|K*θi|计算得到,0≤i≤2N-1;所述第二空间大小为2N,用于存放各哈希地址i指向的存储空间的首地址Ai,Ai的大小可以通过公式Ai=Ai-1+Li-1计算得到,0≤i≤2N-1且A0=0。根据上述的Ai,在所述第三空间中加入所述文件指纹对应的文件信息的具体过程如下:设定哈希地址i对应的一个长度统计变量为CNTi,当在所述哈希地址i对应的所述存储空间中加入一所述文件指纹对应的文件信息时,则对所述长度统计变量CNTi执行加一操作,即更新CNTi=CNTi+1,以更新所述存储空间内已添加信息的长度。在哈希地址i对应的空间地址为Ai+CNTi-1的空间中加入所述文件指纹对应的文件信息。当将待处理的所有所述文件指纹对应的文件信息存储在所述文件指纹对应的所述存储空间中后,如果所述哈希地址指向的存储空间内已添加信息的长度小于预先分配的所述哈希地址指向的存储空间的长度,则释放所述哈希地址指向的存储空间内未使用的空间。并将所述第一空间中保存的所述存储空间的可用空间长度Li更新为所述存储空间内已添加信息的长度CNTi
本发明实施例提供的文件指纹处理方法,通过根据文件指纹的分布特性确定各哈希地址指向的存储空间的可用空间长度,根据所述可用空间长度为所述各哈希地址分配对应的存储空间以存储所述文件指纹对应的文件信息。以解决在处理海量音频信号时,从不同的音频信号中提取到相同的文件指纹出现哈希地址冲突,从而造成后续处理的音频信号的信息不能在相应的哈希地址对应的空间中存储或者将已经存入的音频信号的音频信息冲掉的问题,保证了音频信息数据的完整性,提高了存储空间的利用率和对音频信息进行检索时的匹配成功率。并在存储所有文件指纹对应的文件信息后,更新所述第一空间中存储的各哈希地址指向的存储空间的可用空间长度Li为所述哈希地址i对应的一个长度统计变量CNTi,即Li=CNTi,实现了在处理音频信号的文件指纹时能够自适应调整哈希表空间结构。
实施例四
图4为本发明实施例四所提供的文件指纹处理装置的结构示意图。本实施例的装置适用于对海量音频信息进行有效的管理和使用的情况。该装置通常以硬件和/或软件的方式来实现。参照图4,该文件指纹处理装置包括如下模块:哈希地址确定模块410、首地址确定模块420和文件信息加入模块430。
其中,哈希地址确定模块410用于确定文件指纹对应的哈希地址,所述哈希地址指向一个预先分配的存储空间,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到;首地址确定模块420用于确定所述哈希地址指向的存储空间的首地址;文件信息加入模块430用于根据所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间中加入所述文件指纹对应的文件信息,并更新所述存储空间内已添加信息的长度。
本发明实施例提供的文件指纹处理装置,通过哈希地址确定模块确定所述文件指纹对应的哈希地址,进一步的根据所述哈希地址对应的所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间内加入所述文件指纹对应的文件信息。一定程度上解决了在处理海量音频信号时,从不同的音频信号中提取到相同的文件指纹出现哈希地址冲突,从而造成后续处理的音频信号的信息不能在相应的哈希地址对应的空间中存储或者将已经存入的音频信号的音频信息冲掉的问题,保证了音频信息数据的完整性。同时提高了存储空间的利用率和对音频信息进行检索时的匹配成功率。
进一步的,在本实施例中,在所有文件指纹处理完成之后,还包括空间释放模块用于根据各哈希地址指向的存储空间内已添加信息的长度,释放各存储空间内未使用的空间。
实施例五
图5为本发明实施例五所提供的文件指纹处理装置的结构示意图。参照图5,在上述实施例的基础上,还包括:
长度确定模块510用于根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度;存储空间分配模块520用于根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间。
其中,长度确定模块510具体包括:比例确定子单元510a用于根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间占所有哈希地址指向的总存储空间的比例,其中,所述统计得到的文件指纹分布特性包括:矢量起点的频率值较小的音频指纹多于矢量起点的频率值较大的音频指纹,矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较小的音频指纹多于矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较大的音频指纹;长度确定子单元510b用于根据以下公式确定各哈希地址指向的存储空间的可用空间长度:Li=|K*θi|,Li为哈希地址i指向的存储空间的可用空间长度,K为所有哈希地址指向的总存储空间的长度,θi为哈希地址i指向的存储空间占所有哈希地址指向的总存储空间的比例,其中,N为文件指纹的比特数。
存储空间分配模块520具体包括:特征库创建子单元520a用于创建特征库,所述特征库包括第一空间、第二空间和第三空间;长度保存子单元520b用于将各哈希地址指向的存储空间的可用空间长度保存在所述第一空间;首地址保存子单元520c用于根据各哈希地址指向的存储空间的可用空间长度,将所述第三空间划分为各哈希地址指向的存储空间,确定各哈希地址指向的存储空间的首地址,并将各哈希地址指向的存储空间的首地址保存在所述第二空间。
本发明实施例提供的文件指纹处理装置,通过根据统计得到的文件指纹分布特性,以确定各哈希地址指向的存储空间的可用空间长度。并且根据各哈希地址指向的存储空间的可用空间长度,在所述第三空间中为各哈希地址分配对应的存储空间。因此避免了现有技术中建立等深度的哈希表时造成存储空间浪费和检索音频信息时效率低的问题。
具体的,在本发明上述实施例中,优选的还可以包括:长度更新模块,用于将所述第一空间中保存的所述存储空间的可用空间长度更新为所述存储空间内已添加信息的长度。
进一步的,在上述实施例中,若所述文件指纹为音频指纹,所述文件指纹对应的文件信息包括音频信号的属性信息或所述属性信息的索引,以及所述音频信号中所述音频指纹对应的时间片段,则还包括:时间片段划分单元,用于将音频信号分为至少一个时间片段;音频指纹提取单元,用于从每个时间片段中提取至少一个音频指纹。其中,所述音频指纹由矢量起点的频率值、矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差构成。
本发明各实施例的文件指纹处理装置可用于执行本发明任意实施例所提供的文件指纹处理方法,具备相应的功能模块和有益效果。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种文件指纹处理方法,其特征在于,包括:
确定文件指纹对应的哈希地址,所述哈希地址指向一个预先分配的存储空间,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到;
确定所述哈希地址指向的存储空间的首地址;
根据所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间中加入所述文件指纹对应的文件信息,并更新所述存储空间内已添加信息的长度;
所述确定文件指纹对应的哈希地址之前,还包括:
根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度;
根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间;
还包括:
在所有文件指纹处理完成之后,根据各哈希地址指向的存储空间内已添加信息的长度,释放各存储空间内未使用的空间。
2.根据权利要求1所述的方法,其特征在于,所述根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度,包括:
根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间占所有哈希地址指向的总存储空间的比例;
根据以下公式确定各哈希地址指向的存储空间的可用空间长度:
Li=|K*θi|,Li为哈希地址i指向的存储空间的可用空间长度,K为所有哈希地址指向的总存储空间的长度,θi为哈希地址i指向的存储空间占所有哈希地址指向的总存储空间的比例,其中,N为文件指纹的比特数。
3.根据权利要求1或2所述的方法,其特征在于,所述根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间,包括:
创建特征库,所述特征库包括第一空间、第二空间和第三空间;
将各哈希地址指向的存储空间的可用空间长度保存在所述第一空间;
根据各哈希地址指向的存储空间的可用空间长度,将所述第三空间划分为各哈希地址指向的存储空间,确定各哈希地址指向的存储空间的首地址,并将各哈希地址指向的存储空间的首地址保存在所述第二空间。
4.根据权利要求3所述的方法,其特征在于,所述释放各存储空间内未使用的空间之后,还包括:
将所述第一空间中保存的所述存储空间的可用空间长度更新为所述存储空间内已添加信息的长度。
5.根据权利要求1或2所述的方法,其特征在于,所述文件指纹为音频指纹,所述文件指纹对应的文件信息包括音频信号的属性信息或所述属性信息的索引,以及所述音频信号中所述音频指纹对应的时间片段;所述确定文件指纹对应的哈希地址之前,还包括:
将所述音频信号分为至少一个时间片段;
从每个时间片段中提取至少一个音频指纹。
6.根据权利要求5所述的方法,其特征在于,所述音频指纹由矢量起点的频率值、矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差表征,所述矢量起点和矢量终点根据所述音频指纹对应的时间片段的频谱图确定;所述统计得到的文件指纹分布特性包括:
矢量起点的频率值较小的音频指纹多于矢量起点的频率值较大的音频指纹,矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较小的音频指纹多于矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较大的音频指纹。
7.一种文件指纹处理装置,其特征在于,包括:
哈希地址确定模块,用于确定文件指纹对应的哈希地址,所述哈希地址指向一个预先分配的存储空间,所述哈希地址指向的存储空间的可用空间长度根据文件指纹分布特性得到;
首地址确定模块,用于确定所述哈希地址指向的存储空间的首地址;
文件信息加入模块,用于根据所述存储空间的首地址和所述存储空间内已添加信息的长度,在所述存储空间中加入所述文件指纹对应的文件信息,并更新所述存储空间内已添加信息的长度;
还包括:
长度确定模块,用于根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间的可用空间长度;
存储空间分配模块,用于根据各哈希地址指向的存储空间的可用空间长度,为各哈希地址分配对应的存储空间;
还包括:
空间释放模块,用于在所有文件指纹处理完成之后,根据各哈希地址指向的存储空间内已添加信息的长度,释放各存储空间内未使用的空间。
8.根据权利要求7所述的装置,其特征在于,长度确定模块包括:
比例确定子单元,用于根据统计得到的文件指纹分布特性,确定各哈希地址指向的存储空间占所有哈希地址指向的总存储空间的比例;
长度确定子单元,用于根据以下公式确定各哈希地址指向的存储空间的可用空间长度:
Li=|K*θi|,Li为哈希地址i指向的存储空间的可用空间长度,K为所有哈希地址指向的总存储空间的长度,θi为哈希地址i指向的存储空间占所有哈希地址指向的总存储空间的比例,其中,N为文件指纹的比特数。
9.根据权利要求7或8所述的装置,其特征在于,存储空间分配模块包括:
特征库创建子单元,用于创建特征库,所述特征库包括第一空间、第二空间和第三空间;
长度保存子单元,用于将各哈希地址指向的存储空间的可用空间长度保存在所述第一空间;
首地址保存子单元,用于根据各哈希地址指向的存储空间的可用空间长度,将所述第三空间划分为各哈希地址指向的存储空间,确定各哈希地址指向的存储空间的首地址,并将各哈希地址指向的存储空间的首地址保存在所述第二空间。
10.根据权利要求9所述的装置,其特征在于,还包括:
长度更新模块,用于将所述第一空间中保存的所述存储空间的可用空间长度更新为所述存储空间内已添加信息的长度。
11.根据权利要求7或8所述的装置,其特征在于,所述文件指纹为音频指纹,所述文件指纹对应的文件信息包括音频信号的属性信息或所述属性信息的索引,以及所述音频信号中所述音频指纹对应的时间片段;
还包括:
时间片段划分单元,用于在所述哈希地址确定模块确定文件指纹对应的哈希地址之前,将所述音频信号分为至少一个时间片段;
音频指纹提取单元,用于从每个时间片段中提取至少一个音频指纹。
12.根据权利要求11所述的装置,其特征在于,所述音频指纹由矢量起点的频率值、矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差表征,所述矢量起点和矢量终点根据所述音频指纹对应的时间片段的频谱图确定;所述统计得到的文件指纹分布特性包括:
矢量起点的频率值较小的音频指纹多于矢量起点的频率值较大的音频指纹,矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较小的音频指纹多于矢量终点和矢量起点之间的频率差、矢量终点和矢量起点之间的时间差均较大的音频指纹。
CN201310079446.3A 2013-03-13 2013-03-13 文件指纹处理方法及装置 Active CN104050180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310079446.3A CN104050180B (zh) 2013-03-13 2013-03-13 文件指纹处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310079446.3A CN104050180B (zh) 2013-03-13 2013-03-13 文件指纹处理方法及装置

Publications (2)

Publication Number Publication Date
CN104050180A CN104050180A (zh) 2014-09-17
CN104050180B true CN104050180B (zh) 2017-06-06

Family

ID=51503031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310079446.3A Active CN104050180B (zh) 2013-03-13 2013-03-13 文件指纹处理方法及装置

Country Status (1)

Country Link
CN (1) CN104050180B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108804917B (zh) * 2017-12-22 2022-03-18 安天科技集团股份有限公司 一种文件检测方法、装置、电子设备及存储介质
CN110456238B (zh) * 2019-07-26 2022-01-28 苏州微木智能系统有限公司 一种电晕放电离子源检测方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101984618A (zh) * 2010-07-29 2011-03-09 北京星网锐捷网络技术有限公司 一种基于边界网关协议的标签块申请方法、系统及装置
CN102187642A (zh) * 2011-04-14 2011-09-14 华为技术有限公司 在哈希表中添加、查找或删除键值的方法及装置
CN102232219A (zh) * 2010-01-26 2011-11-02 华为技术有限公司 关键字存储、查找的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880554B2 (en) * 2010-12-03 2014-11-04 Futurewei Technologies, Inc. Method and apparatus for high performance, updatable, and deterministic hash table for network equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102232219A (zh) * 2010-01-26 2011-11-02 华为技术有限公司 关键字存储、查找的方法及装置
CN101984618A (zh) * 2010-07-29 2011-03-09 北京星网锐捷网络技术有限公司 一种基于边界网关协议的标签块申请方法、系统及装置
CN102187642A (zh) * 2011-04-14 2011-09-14 华为技术有限公司 在哈希表中添加、查找或删除键值的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Highly Robust Audio Fingerprinting System;Jaap Haitsma et al.;《ISMIR》;20021231;107-115 *
一种快速的特定音频指纹提取方法;张敏等;《计算机工程》;20100131;211-213 *

Also Published As

Publication number Publication date
CN104050180A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
CN104461390B (zh) 将数据写入叠瓦状磁记录smr硬盘的方法及装置
CN104408163B (zh) 一种数据分级存储方法和装置
CN106294684A (zh) 词向量的文本分类方法及终端设备
CN102929906A (zh) 基于内容特征和主题特征的文本分组聚类方法
CN105631003A (zh) 支持海量数据分组统计的智能索引构建、查询及维护方法
CN107633062A (zh) 敏感词查找方法、装置及电子设备
CN103679012A (zh) 一种可移植可执行文件的聚类方法和装置
CN105550243A (zh) 一种播放列表的处理方法及装置
CN104636349A (zh) 一种索引数据压缩以及索引数据搜索的方法和设备
CN104750432B (zh) 一种数据存储方法及装置
CN103440246A (zh) 用于MapReduce的中间结果数据排序方法及系统
CN109918658A (zh) 一种从文本中获取目标词汇的方法及系统
CN117216023B (zh) 一种大规模网络数据存储方法及系统
CN107748739A (zh) 一种短信文本模版的提取方法及相关装置
CN104050180B (zh) 文件指纹处理方法及装置
CN103336844A (zh) 大数据rd分割方法
CN106802787B (zh) 基于GPU排序的MapReduce优化方法
CN105359142A (zh) 哈希连接方法、装置和数据库管理系统
CN101639851B (zh) 一种数据存储、查询的方法和装置
CN101944121A (zh) 有限状态自动机生成方法、关键字匹配方法及装置和设备
CN105045891B (zh) 提高顺序表性能方法、系统、架构、优化方法及存储装置
CN104090724A (zh) 一种智能终端中通过双指手势操作文件的方法及装置
CN105589683B (zh) 样本抽取方法和装置
CN108092670B (zh) 编码方法和装置
CN109597807A (zh) 数仓表处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171213

Address after: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee after: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

TR01 Transfer of patent right

Effective date of registration: 20171218

Address after: 402260 Chongqing city Jiangjin Jijiang 90 Minsheng Road No. 1-7-2 Building 1

Patentee after: Chongqing GA doll Technology Co., Ltd.

Address before: 510640 Guangdong City, Tianhe District Province, No. five, road, public education building, unit 371-1, unit 2401

Patentee before: Guangdong Gaohang Intellectual Property Operation Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181220

Address after: 401120 Yubei District, Chongqing, Longxi street, Hong Jin Avenue 498, Jiale, Violet 1, 5- business.

Patentee after: Chongqing Kai Tuo development in science and technology company limited

Address before: 402260 Jiangjin 90 District, Chongqing City, No. 1, No. 1, No.

Patentee before: Chongqing GA doll Technology Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201116

Address after: No. ZC030, College Students Pioneer Park, Tongling City, Anhui Province, 244000

Patentee after: TONGLING HUIHENG ELECTRONIC TECHNOLOGY Co.,Ltd.

Address before: 401120 Jiale Ziguang Building 5-Business, 498 Hongjin Avenue, Longxi Street, Yubei District, Chongqing

Patentee before: CHONGQING KAITUO TECHNOLOGY DEVELOPMENT Co.,Ltd.

TR01 Transfer of patent right