CN110866127A - 建立索引的方法以及相关装置 - Google Patents
建立索引的方法以及相关装置 Download PDFInfo
- Publication number
- CN110866127A CN110866127A CN201810986041.0A CN201810986041A CN110866127A CN 110866127 A CN110866127 A CN 110866127A CN 201810986041 A CN201810986041 A CN 201810986041A CN 110866127 A CN110866127 A CN 110866127A
- Authority
- CN
- China
- Prior art keywords
- feature
- storage area
- address
- memory
- features
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 207
- 238000004364 calculation method Methods 0.000 claims abstract description 60
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000875 corresponding effect Effects 0.000 description 74
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000013144 data compression Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了建立索引的方法以及相关装置,其中,方法包括:确定待存储至内部存储器的多个第一特征,所述多个第一特征属于第一索引分组,所述第一特征被运算处理器用于特征计算,所述第一特征为对多媒体数据进行特征提取和/或处理得到的特征;将所述多个第一特征存储至所述内部存储器,其中,所述多个第一特征连续存储于内部存储器的第一存储区域;建立所述第一存储区域的地址索引信息,所述地址索引信息用于指示所述第一存储区域在所述内部存储器中的地址;根据所述地址索引信息,将所述第一特征读取至所述运算处理器。本申请的技术方案,可以提高将特征读取至运算处理器的速度,从而提高运算处理器的利用率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及建立索引的方法以及相关装置。
背景技术
特征,是用于描述多媒体数据某一方面或多个方面的内容属性的数据。在利用特征进行特征计算的场景中,由于不同的特征计算的算法所使用的数据格式、字段、字段类型、字段长度等不同,需要对特征建立索引,以便在根据这些算法进行特征计算时,可以根据索引调用与算法相关的特征。特征计算具体可以应用于数据检索场景、数据挖掘场景,等等。
特征计算由计算机的运算处理器完成。由于运算处理器的存储空间有限,一般是将特征保存在计算机的内部存储器中,当运算处理器需要利用特征进行特征计算时,再根据事先建立的索引将特征读取至运算处理器。目前,在利用特征进行特征计算的场景中,一般是将特征以及与其对应的辅助信息作为一个整体的特征存储单元存储在内部存储器中,然后将指向连续存储有多个特征存储单元的存储区域的第一个存储地址的指针作为该存储区域的地址索引。这样的问题在于:如果一次将内部存储器中的多个特征(如该存储区域中的多个特征)读取至运算处理器,需要根据该指针指向的存储地址和特征存储单元对应的存储空间的长度计算每个特征的存储地址,然后使指针跳转到各个特征的存储地址才能将这多个特征读取至运算处理器中,涉及多次存储地址的计算和多次指针跳转,特征读取至运算处理器耗时较长,不利于提高运算处理器的利用率。
发明内容
本申请提供建立索引的方法以及相关装置,解决特征读取至运算处理器耗时较长而导致的运算处理器利用率不高的问题。
第一方面,提供一种建立索引的方法,包括:
确定待存储至内部存储器的多个第一特征,该多个第一特征均为第一索引分组的特征,第一特征为被运算处理器用于特征计算的特征,第一特征为对多媒体数据进行特征提取和/或处理得到的特征;将该多个第一特征存储至内部存储器,其中,该多个第一特征连续存储于内部存储器的第一存储区域;建立第一存储区域的地址索引信息,该地址索引信息用于指示第一存储区域在内部存储器中的地址;根据第一存储区域的地址索引信息,将第一区域存储中存储的第一特征读取至运算处理器。
在该技术方案中,通过属于一个索引分组的第一特征连续存储在内部存储器中并建立连续存储该多个第一特征的存储区域的地址索引信息,连续存储的方式使得在将该索引分组的第一特征读取至运算处理器时,可以根据地址索引信息连续地将多个第一特征读取至运算处理器,不需要分别计算每个第一特征的存储地址,也不需要进行多次指针跳转,减少了将多个第一特征读取至运算处理器的时间,提高了读取的效率。
在一种可能的实施方式中,该待存储至内部存储器的多个第一特征为当前未存储于内部存储器的特征。
在一种可能的实施方式中,该待存储至内部存储器的多个第一特征为持久化存储外部存储器的特征。进一步地,该待存储至内部存储器的多个第一特征为以列存储的方式持久化存储于外部存储器的特征。由于第一特征以列存储的方式持久化存储于外部存储器中,在将该多个第一特征存储至内部存储器时,可以连续地将多个第一特征存储至内部存储器中,不需要对每个第一特征进行寻址,减少了将多个第一特征存储至内部存储器的时间,进而可以减少在设备重启阶段将特征从外部存储器读取至运算处理器的时间。
在一些可能的实施方式中,第一存储区域的地址索引信息可以有以下几种情况:
1)第一存储区域的地址索引信息包括第一指针和第一存储空间长度,第一指针的值为第一存储区域的第一个存储地址,第一存储空间长度为第一存储区域的存储空间长度。
2)第一存储区域的地址索引信息包括第一指针和第二指针,第一指针的值为第一存储区域的第一个存储地址,第二指针的值为第一存储区域的最后一个存储地址。
3)第一存储区域的地址索引信息包括第一指针和剩余存储空间长度,第一指针的值为第一存储区域的第一个存储地址,剩余存储空间长度为第一存储区域的最大存储空间长度与第一存储区域的存储空间长度的差值。
不限于这里的几种情况,第一存储区域的地址索引信息还可以有其他的情况。例如,第一存储区域的地址索引信息还可以为已经创建或还为创建的数据表中存储的内容,该内容可以为该内容可以为第一存储区域的第一个存储地址和第一存储区域的存储空间长度;或者,第一存储区域的第一个存储地址和最后一个存储地址;或者,第一存储区域的第一个存储地址和剩余存储空间长度,等等。通过以上几种第一存储区域的地址索引信息,在将第一存储区域中的第一特征读取至运算处理器时,可以根据该地址索引信息直接确定连续存储的多个第一特征在内部存储器中的地址,进而可以根据该地址索引信息连续地读取多个第一特征。
在一种可能的实施方式中,在将该多个第一特征存储至内部存储器的同时,或者,在将该多个第一特征存储至内部存储器后,可以将该第一特征对应的辅助信息存储至内部存储器,该辅助信息存储于内部存储器中的至少一个第二存储区域;建立该第二存储区域的地址索引信息以及第一存储区域与第二存储区域的关联关系,该第二存储的地址索引信息用于指示第二存储区域在内部存储器中的地址,第二存储区域的地址索引信息以及所述第一存储区域与第二存储区域的关联关系被运算处理器用于确定第二特征对应的辅助信息,该第二特征为运算处理器经过特征计算后确定的第一特征;其中,该辅助信息为该第一特征对应的多媒体数据的描述性信息和/或第一特征的描述性信息。通过将第一特征对应的辅助信息存储至内部存储器的第二存储区域并建立第二存储区域的地址索引信息以及第一存储区域与第二存储区域的关联关系,在第一特征为运算处理器经过特征计算后确定的特征时,可根据该第二存储区域与第一存储与的关联关系以及第二存储区域的地址索引信息找到第一特征对应的辅助信息在内部存储器中的存储地址,从该存储地址中获取到第一特征对应的辅助信息,进而可以根据这些辅助信息找到第一特征对应的多媒体数据。
在一种可能的实施方式中,在将第一特征读取至运算处理器之后,还可以将第一索引分组的分组标记置为第一标记,第一标记用于指示第一特征已经存储于运算处理器。
在一种可能的实施方式中,在将第一特征读取至运算处理器之后,如果第一特征从运算处理器中移除,则将第一索引分组的分组标记置为第二标记,第二标记用于指示第一特征未存储于运算处理器。通过按照索引分组对第一特征是否存储于运算处理器进行标记,可以实现对第一特征的按批标记,相较于分别对特征进行标记,可以节省标记的数量,一定程度上节省了存储空间。
在一种可能的实施方式中,在将第一特征读取至运算处理器之后,还可以将第一特征一直存储于运算处理器的第三存储区域,然后建立第三存储区域的地址索引信息以及第一存储区域与第三存储区域之间的关联关系,其中,第三存储区域的地址索引信息以及第一存储区域与第三存储区域之间的关联关系被运算处理器用于,根据该第三存储区域的地址索引信息以及第一存储区域与第三存储区域之间的关联关系,在运算处理器中直接读取第一特征以用于特征计算。通过将第一索引分组中的第一特征一直存储在运算处理器中,当运算处理器利用该第一特征进行特征计算时,可以根据第三存储区域和第一存储区域之间的关联关系以及第三存储区域的地址索引信息确定第一特征在运算处理器中的存储地址,进而直接从该运算处理器中获取第一特征进行特征计算,不需要再从内部存储器中读取,省去了将第一特征读取至内部存储器的时间。
第二方面,提供一种建立索引的装置,包括用于执行第一方面或第一方面任一种可能实现方式中的建立索引的方法的各个模块。
第三方面,提供另一种建立索引的装置,包括处理器和存储器,所述处理器与存储器连接,其中,所述处理器包括运算处理器,所述存储器包括内部存储器,所述内部存储器为与运算处理器耦合的存储器,所述存储器用于存储程序代码和特征,所述处理器用于调用所述程序代码,执行上述第一方面或第一方面任一种可能的实现方式中的任意一种方法。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面和第一方面各个可能的实现方式中的任意一种方法。
第五方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面和第一方面各个可能的实现方式中的任意一种方法。
附图说明
图1是利用特征进行特征计算以实现多媒体数据检索的***架构的示意图;
图2是分层索引的示意图;
图3是现有技术中一种特征存储与索引的设计方案的示意图;
图4现有技术中将特征读取至运算处理器的流程示意图;
图5是本申请实施例提供的一种建立索引的装置的结构框图;
图6是本申请实施例提供的一种建立索引的方法的流程示意图;
图7A-图7C是本申请实施例提供的将第一特征存储至内部存储器的示意图;
图8是本申请实施例提供的一种具体的特征存储与索引的设计方案的示意图;
图9是本申请实施例提供的一种建立索引的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
首先介绍利用特征进行特征计算的***架构和目前的一些有关于特征存储与索引的设计方案。
参见图1,图1是利用特征进行特征计算以实现多媒体数据检索的***架构的示意图,如图所示,该***架构包括特征数据库建立***11和多媒体数据检索***12。数据库建立***11包括特征提取模块111和数据存储引擎112,特征提取模111用于对多媒体数据库中存储的多媒体数据进行特征提取得到各个多媒体数据对应的一个或多个特征;数据存储引擎112用于将特征提取模块得到的一个或多个特征存储至特征数据库,建立并存储索引,以及建立并存储算法的相关模型。多媒体数据检索***12包括特征提取模块121和检索模块122,特征提取模块121用于对用户输入的多媒体数据进行特征提取得到该多媒体数据对应的一个或多个特征;检索模块122用于将该多媒体数据对应的一个或多个特征分别与特征数据库中的部分或全部特征进行特征计算以完成多媒体数据的相似性检索,并根据相似性检索的结果输出最后的检索结果。
在上述***架构中,特征存储与索引由数据存储引擎实现,数据存储引擎包括特征存储和索引两个模块,其中,特征存储模块用于存储特征;索引模块用于建立以及存储对特征和算法模型的索引。索引模块中存储的索引可以为分层索引,分层索引可以如图2所示,通过分层索引的前K(K为大于或等于0的正整数)层数据可以索引至特征索引、特征以及算法模型。当该检索架构中的其他模块与数据存储引擎进行交互时,可以根据该分层索引一层一层地向下索引,从而索引到需要的特征或算法模型的存储地址,进而根据该存储地址找到特征存储模块存储的特征或算法模型。
在一种具体实现方式中,针对于多媒体数据为图片的场景,特征存储与索引的设计方案如图3所示,分层索引为三层索引结构。第一层索引31a为摄像头标识的索引,摄像头标识用于唯一地表示拍摄图片的摄像头,通过第一层索引31a可索引至用于存储摄像头标识的摄像头标识存储区域31b,该摄像头标识存储区域31b可通过指针的方式指向第二层索引32a。第二层索引32a为拍摄日期的索引,拍摄日期用于表示图片的拍摄日期,通过第二层索引32a可索引至用于存储拍摄日期的拍摄日期存储区域32b,该拍摄日期存储区域32b可通过指针的方式指向第三层索引。第三层索引包括存储特征的特征存储区域33a、用于存储特征索引的特征索引存储区域33b、以及用于存储算法模型的模型存储区域33c。特征存储区域33a可以包括内部存储器中的特征存储区域33a1和外部存储器中的特征存储区域33a2,特征存储区域33a1存储的特征与特征存储区域33a2中的存储的特征通过特征存储区域33a1和特征存储区域33a2之间的映射关系一一对应。在特征存储区域33a1和特征存储区域33a2中,特征与特征的辅助信息(如拍摄时刻、特征版本等)作为一个特征存储单元Fn存储在一起。一个拍摄标识和一个拍摄日期索引到的多个特征存储单元连续存储在一起,形成一个特征存储区域。一个拍摄标识和一个拍摄日期通过指针1和特征存储单元Fn占用的存储空间的长度索引至一个特征存储区域。特征存储区域33a还包括运算处理器中的特征存储区域33a3,特征存储区域33a3存储中的特征是从特征存储区域33a1读取的,特征在特征存储区域33a3中连续存储,特征存储区域33b3中不含特征的辅助信息。特征存储区域33a1存储的特征与特征存储区域33a2中的存储的特征可通过特征索引33b对其进行关联。特征索引33b由指针2、指针3以及一个特征存储区域33a1中连续存储的特征的特征数量n组成,其中,指针2指向特征存储区域33a1的第一个存储地址、指针3指向特征存储区域33a3的第一个存储地址,一个特征存储区域33a1中连续存储的特征的特征数量n等于一个拍摄标识和一个拍摄日期索引到的特征的数量。在一些可能的实施方式中,指针1和指针2可以为同一个指针。
在利用特征进行特征对比以完成图片检索的过程中,在将特征从内部存储器的特征存储区域33a1读取至运算处理器的特征存储区域33a3时,可以将一个特征存储区域33a1中存储的特征批量读取至特征存储区域33a3中,以使得运算处理器可以同时对一个特征存储区域33a1的特征进行特征计算,以实现对运算处理器的多线程并行处理能力的充分利用,提高运算处理器的利用率。一个特征存储区域33a1存储的特征可以称之为一个batch的特征。将一个batch的特征读取至运算处理器的流程如图4所示,其包括如下步骤:
S101,初始化指针偏移量。
循环执行步骤S102~S103n次,n等于一个batch中的特征的数量:
S102,读取指针1加上指针偏移量后指向的存储地址对应的存储空间中的特征到运算处理器的存储区域中。
S103,将指针偏移量与一个特征存储单元占用的存储空间的长度重新确定为指针偏移量,执行步骤S102。
由图4所示的流程可以看出,在图3所示的特征存储与索引的设计方案中,要将一个batch的特征读取至运算处理器中进行特征计算,指针1加上指针偏移后指向的存储地址为特征的存储地址,重复执行步骤S102和S103n次相当于是计算n次特征的存储地址以及指针跳转n次,计算存储地址和指针跳转所需的时间较长,导致将一个batch的特征读取至运算处理器所需的时间较长,不利于提高运算处理器的利用率。
本申请实施例提供一种建立特征索引的方法和相关装置,以解决图3所示的特征存储和与索引的设计方案中特征读取至运算处理器所需的时间较长的问题。
本申请实施例可适用于利用特征进行特征计算以完成某一目的(如数据检索、数据挖掘等)的场景。本申请实施例适用于图1所示的利用特征进行特征计算以实现多媒体数据检索的***架构,本申请实施例的方案具体可以应用于该架构中的数据存储引擎中,数据存储引擎可如前述描述,包括特征存储和索引两个模块。
本申请实施例通过对特征存储与索引的方案进行改进,将特征按索引分组连续存储在内部存储器中,并建立连续存储有多个特征的特征存储区域的地址索引,使得在将该特征存储区域中的特征读取至运算处理器时,无需通过地址计算即可将该特征存储区域中的多个特征读取至运算处理器,减少将多个特征读取至运算处理器的时间,提高运算处理器的利用率。
在介绍本申请实施例的方案之前,为便于理解,首先对本申请实施例所涉及的一些概念进行介绍。
1、特征的概念
本申请实施例中,特征,是指利用一种或多种特征提取算法对多媒体数据(如图片、音频流等)进行特征提取得到的用于描述该多媒体数据的某一方面或多方面的内容属性的数据。例如,多媒体数据为图片,则特征可以为用于描述图片中的内容的纹理的纹理特征、用于描述该图片中的内容的颜色的颜色特征、用于描述该图片中的内容的形状的形状特征,等等,不限于这里的描述。
特征可以分为长特征和短特征。长特征为对多媒体数据进行特征提取后得到的全量特征,即还未经过数据压缩或数据降维的特征;短特征为对多媒体数据进行特征得到长特征后,采用降维算法或压缩算法对长特征进行数据压缩或数据降维得到的特征,例如,短特征为通过主成分分析算法对长特征进行降维得到的特征。
2、索引分组的概念
本申请实施例中,索引分组为相同的一个或多个描述性信息对应的特征的集合,该一个或多个描述信息为特征对应的多媒体数据的描述性信息,该多媒体数据的描述性信息用于描述多媒体数据的客观属性,该客观属性为除多媒体数据的内容属性之外的一些属性信息。例如,多媒体数据为图片,多媒体数据的描述性信息可以为图片的图片尺寸、图片的拍摄日期、图片的拍摄时刻,等等,不限于这里的描述;相应地,索引分组可以为相同的图片尺寸和/或相同的拍摄日期和/或相同的拍摄时刻对应的特征的集合。该一个或多个描述性信息可以用于对索引分组进行区分。
在一些可能的实现方式中,如果相同的一个描述性信息对应的特征的数量小于或等于特征数量阈值,则索引分组可以为相同的一个描述性信息对应的特征的集合,如为相同的拍摄日期对应的特征的集合;如果相同的一个描述性信息对应的特征的数量小于特征数量阈值,则索引分组对应的特征数量大于特征数量阈值,则索引分组可以为相同的多个描述性信息对应的特征的集合,如为相同的摄像头和拍摄日期对应的特征的集合。其中,特征数量阈值可以与运算处理器多线程进行特征计算的能力正相关,即运算处理器并行进行特征计算所利用的特征的个数越多,则特征数量阈值越大。在一种可行的实施方式中,如果采用分层索引,则索引分组中的特征可以为分层索引中的前K层数据索引到的特征。例如,分层索引如图3所示,前K层数据为摄像头标识的索引和拍摄日期的索引,则索引分组中的特征为一个摄像头标识和一个拍摄日期索引到的特征,索引分组为一个摄像头标识和一个拍摄日期索引到的特征的集合。
接下来介绍本申请实施例的方案。参见图5,图5是本申请实施例提供的一种建立索引的装置的结构框图,如图所示,该装置20可包括处理器201、存储器202以及输入输出接口203和任意其他类似或合适的部件,这些部件可在一个或多个通信总线204上通信,该总线204可以为内存总线、外设总线,等等。
处理器201可以通过总线204从上述其他部件(如存储器202、输入输出接口203等)接收命令,根据接收到的命令来进行计算或数据处理。处理器201可以包括一个或多个运算处理器。运算处理器可以用于执行复杂的数学和几何计算。可选地,处理器201还可以包括一个或多个通信处理器。通信处理器又可以称之为前台处理器,用于处理所有与外部设备之间的信息,以防止运算处理器正在执行的操作或步骤因外部设备的信息到来中断;可选地,通信处理器可以通过通信接口接收外部设备的信息。在一些可能的设计中,运算处理器和通信处理器实现的功能可以集成在一个集成电路或芯片上。
本申请实施例中,运算处理器可以用于对多媒体数据进行特征提取和/或特征计算;可选地,运算处理器还可以与输入输出接口203配合执行本申请实施例中建立索引的方法步骤。具体地,运算处理器可以为中央处理器(center processor unit,CPU)、图形处理器(graphics processing unit,GPU)、现场可编程门阵列(field-programmable gatearray,FPGA)等处理器中的一种或多种。
存储器202可以存储从处理器201或其他部件(如输入输出接口203)接收命令或数据。存储器202可以包括内部存储器。内部存储器与运算处理器耦合,内部存储器可以包括易失性存储器,例如为动态随机存取存储器(dynamic random access memory,DRAM)、静态随机存取存储器(static random access memory,SRAM)、同步动态随机存取存储器(synchronous dynamic random access memory SDRAM)等;内部存储器也可以包括可编程只读存储器(programmable read-only memory,PROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)等。可选地,存储器202还可以包括外部存储器,外部存储器可以与内部存储器耦合,外部存储器为非易失性存储器,外部存储器可以包括硬盘(hard disk drive,HDD)、固态硬盘(solid-state drive,SSD)等。
本申请实施例中,存储器202可以用于存储多媒体数据的特征和索引;可选地,存储器202还可以用于存储支持运算处理器执行本申请实施例中建立索引的方法的程序代码。
输入输出接口203可以接收经由输入部件(如传感器、键盘、鼠标等)输入的命令或数据,并可以通过总线204向处理器201或存储器202传送接收到的命令或数据。输入输出接口203还可以用于向用户输出从上述其他部件(如处理器201、存储器202)接收到的各种信息(如多媒体数据、文本数据等)。具体地,输入输出接口203可以包括触摸面板、按键、鼠标等外部部件以及还包括作用于控制触摸面板、按键、鼠标等外部部件的控制电路。
基于图5实施例描述的建立索引的装置,可以实现本申请实施例的方法。参见图6,图6是本申请实施例提供的一种建立索引的方法的流程示意图,如图所示,该方法包括:
S201,确定待存储至内部存储器的多个第一特征,多个第一特征属于第一索引分组。
本申请实施例中,第一特征为被运算处理器用于特征计算的特征,如果运算处理器利用长特征进行特征计算,则第一特征为长特征;如果运算处理器利用短特征进行特征计算,则第一特征为短特征。长特征和短特征的定义可参见前述描述,此处不做过多描述。
待存储至内部存储器的多个第一特征可以有以下两种情况:
1)待存储至内部存储器的多个第一特征为新增的第一特征,即当前既未持久化存储于内部存储器,也未持久化存储于外部存储器的第一特征。
例如,外部存储器中存储的第一特征为第一特征1~第一特征200,其分别属于索引分组1~索引分组5,其中,第一特征1~第一特征25属于索引分组1,第一特征26~第一特征70属于索引分组2,第一特征70~第一特征125属于索引分组3,第一特征126~第一特征170属于索引分组4,第一特征171~第一特征200属于索引分组5,内部存储器中存储的第一特征为第一特征1~第一特征125,对应于外部存储器中的第一特征1~第一特征125,待存储至内部存储器的多个特征为第一特征201~第一特征250,则第一特征201~第一特征250为新增的第一特征。
2)待存储至内部存储器的多个第一特征为持久化存储于外部存储器的第一特征,即该第一特征当前存储于外部存储器中,并且,还未存储于该内部存储器中。
例如,外部存储器中存储的特征为第一特征1~第一特征200,其分别属于索引分组1~索引分组5,其中,第一特征1~第一特征25属于索引分组1,第一特征26~第一特征70属于索引分组2,第一特征70~第一特征125属于索引分组3,第一特征126~第一特征170属于索引分组4,第一特征171~第一特征200属于索引分组5,内部存储器中存储的特征为第一特征1~第一特征125,对应于外部存储器中的第一特征1~第一特征125,待存储至内部存储器的多个特征为第一特征126~第一特征170,则第一特征126~第一特征170为持久化存储于外部存储器的第一特征。
第一索引分组为索引分组,索引分组的定义可参见前述描述,此处不再赘述。第一索引分组可以有以下两种情况:
1)第一索引分组为既不存在于内部存储器也不存在于外部存储器中的索引分组,其又可以称之为新增的索引分组。如果第一索引分组为新增的索引分组,则该多个第一特征为新增的第一特征。
例如,外部存储器中包含的索引分组为索引分组1~索引分组10,内部存储器中包含的索引分组为索引分组1~索引分组5,其对应于外部存储器中的索引分组1~索引分组5,第一索引分组为索引分组11,则索引分组11为新增的索引分组,索引分组11中的第一特征为新增的第一特征。
2)第一索引分组为存在于内部存储器和/或外部存储器中的索引分组,其又可以称之为已经存在的索引分组。
例如,外部存储器中包含的索引分组为索引分组1~索引分组10,内部存储器中包含的索引分组为索引分组1~索引分组5,其对应于外部存储器中的索引分组1~索引分组5,第一索引分组为索引分组5,则第一索引分组5为已经存在的索引分组。
S202,将多个第一特征存储至内部存储器,其中,多个第一特征连续存储于内部存储器的第一存储区域。
本申请实施例中,第一存储区域为第一索引分组对应的存储区域,其用于连续存储第一索引分组中的所有第一特征。将多个第一特征存储至内部存储器可以有以下几种可行的实施方式:
1)如果第一索引分组为上述第1)种情况,则可以在内部存储器中划分一个存储区域,将该存储区域作为第一存储区域,将该多个第一特征连续存储至该第一存储区域。
例如,多个第一特征分别为第一特征f1~第一特征fn,n为该多个第一特征的数量,假设一个第一特征在内部存储器中占用的存储空间为一个存储地址对应的存储空间,则将第一特征f1~第一特征fn连续存储至该第一存储区域后可以如图7A所示,第一特征f1的存储地址1与第一特征f2的存储地址2连续,第一特征f2的存储地址2与第二特征f3的存储地址3连续,…,第一特征fn-1的存储地址n-1与第一特征fn的存储地址n连续,存储地址1~存储地址n对应的存储区域为第一存储区域。
2)如果第一索引分组为上述第2)种情况,并且,多个第一特征为上述第1)种情况,则可以确定第一索引分组中的其他第一特征在内部存储器中连续存储的第四存储区域,将存储地址在第四存储区域之后并与第四存储区域连续的存储区域确定为第五存储区域,其中,该其他特征为第一索引分组中不为该多个第一特征的特征,第四存储区域与第五存储区域组成第一存储区域。
例如,如图7B所示,假设一个第一特征在内部存储器中占用的存储空间为一个存储地址对应的存储空间,第一索引分组中的第一特征为第一特征f1~第一特征f10,其连续存储在内部存储器中的存储地址1~存储地址10对应的第四存储区域中,多个第一特征为第一特征f11~第一特征f15,则将第一特征f11~f15存储在以存储地址11为起始存储地址的第五存储区域中,即存储在存储地址11~存储地址15对应的存储区域中,存储地址1~存储地址15对应的存储区域为第一存储区域。
3)如果第一索引分组为上述第2)种情况,并且,多个第一特征为上述第2)种情况,则可以在内部存储区域中划分一个存储区域,将该多个第一特征连续存储至该第一存储区域。
例如,如图7C所示,假设一个第一特征在内部存储器中占用的存储空间为一个存储地址对应的存储空间,外部存储器中包含的索引分组为索引分组1~索引分组10,内部存储器中包含的索引分组为索引分组1~索引分组5,其对应于外部存储器中的索引分组1~索引分组5,该多个第一特征为索引分组6中的第一特征,分别为第一特征f61~第一特征f6n,n为索引分组6中的第一特征的数量,则将索引分组6中第一特征连续存储至该第一存储区域之后,第一特征f61的存储地址61与第一特征f62的存储地址62相邻,第一特征f62的存储地址62与第二特征f63的存储地址63相邻,…,第一特征f6(n-1)的存储地址6(n-1)与第一特征f6n的存储地址6n相邻。
S203,建立第一存储区域的地址索引信息,地址索引信息用于指示第一存储区域在内部存储器中的地址。
本申请实施例中,第一存储区域的地址索引信息可以有以下几种可行的实现形式:
1)该地址索引信息包括第一指针和第一存储空间长度,第一指针的值为第一存储区域的第一个存储地址,第一存储空间长度为第一存储区域的存储空间长度,其中,第一存储区域的存储空间长度等于第一索引分组中的所有第一特征在内部存储器中占用的存储空间的长度。
例如,第一存储区域如图7A所示,则第一指针的值为存储地址1,第一存储区域的存储空间长度等于单个存储地址对应的存储空间的长度*n。
2)该地址信息包括第一指针和第二指针,第一指针的值为第一存储区域的第一个存储地址,第二指针的值为第一存储区域的最后一个存储地址。
例如,第一存储区域如图7A所示,则第一指针的值为存储地址1,第二指针的值为存储地址n。
3)地址索引信息包括第一指针和剩余存储空间长度,第一指针的值为第一存储区域的第一个存储地址,剩余存储空间长度为第一存储区域的最大存储空间长度与第一存储区域的存储空间长度的差值,其中,第一存储区域的最大存储空间长度为第一索引分组中的第一特征的数量达到最大数量时,该第一索引分组中的所有第一特征在内部存储器中占用的存储空间的长度,该最大数量可以为一次读取至运算处理器的特征的最大数量;第一存储区域的存储空间长度等于第一索引分组中的所有第一特征在内部存储器中占用的存储空间的长度。
例如,第一存储区域如图7A所示,第一存储区域的最大存储空间长度为m,则第一指针的值为存储地址1,剩余存储空间长度等于m-单个存储地址对应的存储空间的长度*n。
应理解的是,上述对地址索引信息的几种描述仅为本申请实施例对地址索引信息的具体实现形式的示例,在可选实施方式中,地址索引信息还可以有其他的实现形式,例如,地址索引信息为还可以为已经创建或还未创建的数据表中存储的内容,该内容可以为第一存储区域的第一个存储地址和第一存储区域的存储空间长度;或者,第一存储区域的第一个存储地址和最后一个存储地址;或者,第一存储区域的第一个存储地址和剩余存储空间长度。
例如,第一存储区域如图7A所示,第一存储区域的最大存储空间长度为m,则数据表中存储的内容可以如表1、表2、或表3所示。
第一个存储地址 | 第一存储区域的存储空间长度 |
存储地址1 | 单个存储地址对应的地址空间的长度*n |
表1
第一个存储地址 | 最后一个存储地址 |
存储地址1 | 存储地址n |
表2
第一个存储地址 | 剩余存储空间长度 |
存储地址1 | m-单个存储地址对应的地址空间的长度*n |
表3
这里,建立第一存储区域的地址索引信息可以有以下几种可行的实施方式:
1)如果第一索引分组为上述第1)种情况,或者,第一索引分组为上述第2)种情况并且多个第一特征为上述第2)种情况,则可以创建第一存储区域的地址索引信息,即分配指针或数据表等资源用作该第一存储区域的地址索引信息。
2)如果第一索引分组为上述第2)种情况,并且,多个第一特征为上述第1)种情况,则可以修改第一存储区域的地址索引信息,具体实现中,可以通过修改该地址索引信息的指针的值,或者,修改数据表中的内容,或者,修改第一存储区域的存储空间长度等方式修改第一存储区域的地址索引信息。
S204,根据地址索引信息,将第一索引分组中的第一特征读取至运算处理器。
本申请实施例中,对应于地址索引信息的不同形式,将第一特征读取至运算处理器的实施方式可以有以下几种:
1)可以根据第一指针确定第一存储区域的第一个存储地址,从该第一个存储地址对应的存储区域开始,读取长度为该第一存储空间长度的数据,将其保存至运算处理器。
例如,第一存储区域如图7A所示,第一指针的值为存储地址1,第一存储区域的存储空间长度等于单个存储地址对应的地址空间的长度*n,则从存储地址1对应的存储区域开始,读取长度为单个存储地址对应的地址空间的长度*n的数据,将其保存至运算处理器,即读取存储地址1~存储地址n对应的存储区域中的数据保存至运算处理器。
2)可以根据第一指针确定第一存储区域的第一个存储地址,根据第二指针确定第一存储区域的最后一个存储地址,则从第一个存储地址对应的存储区域中的数据开始,连续读取多个存储地址对应的存储区域中的数据,直到读取到最后一个存储地址对应的存储区域中的数据,将连续读取到的数据保存至运算处理器。
例如,第一存储区域如图7A所示,第一指针的值为存储地址1,第二指针的值为存储地址n,则从存储地址1对应的存储区域中的数据开始,连续读取多个存储地址对应的存储区域中的数据,直到读取到存储地址n对应的存储区域中的数据,将连续读取到的数据保存至运算处理器,即连续读取存储地址1~存储地址n对应的存储区域中的数据保存至运算处理器。
3)可以根据第一指针确定第一存储区域的第一个存储地址,根据最大存储空间长度与剩余存储空间长度确定第一存储区域中存储的第一特征的总长度,读取长度为该总长度的数据并保存至运算处理器。
例如,第一存储区域如图7A所示,第一指针的值为存储地址1,最大存储空间长度为m,剩余存储空间长度为m-等于单个存储地址对应的地址空间的长度*n,则确定第一存储区域中存储的第一特征的总长度为单个存储地址对应的地址空间的长度*n,从存储地址1对应的存储区域开始,读取长度为单个存储地址对应的地址空间的长度*n的数据并保存至运算处理器,即读取存储地址1~存储地址n对应的存储区域中的数据保存至运算处理器。
4)可以从数据表中获取第一存储区域的第一个存储地址和第一存储区域的存储空间长度,或者,第一存储区域的第一个存储地址和最后一个存储地址;或者,第一存储区域的第一个存储地址和剩余存储空间长度,根据数据表中获取到的内容按照前述1)-3)中的方式读取数据并保存至运算处理器。
本申请实施例中,通过将属于一个索引分组的第一特征连续存储在内部存储器中并建立连续保存有该第一特征的存储区域的地址索引信息,连续存储的方式使得在将该索引分组的第一特征读取至运算处理器中时,可以根据该地址索引信息将一个索引分组中的多个第一特征直接读取运算处理器中,不需要依次计算该索引分组中的各个第一特征的存储地址,也不再需要进行多次指针跳转,节省了将多个第一特征读取至运算处理器的时间,提高了运算处理器的效率。
在一些可能的场景中,在将第一索引分组中的第一特征存储至内部存储器的同时,或者在将第一索引分组中的第一特征存储至内部存储器后,还可以将该第一特征对应的辅助信息存储至内部存储器,上述方法实施例还可以包括:
将第一特征对应的辅助信息存储至内部存储器,其中,辅助信息存储于内部存储器的至少一个第二存储区域;建立第二存储区域的地址索引信息以及第一存储区域与第二存储区域的关联关系,第二存储区域的地址索引信息用于指示第二存储区域在内部存储器中的地址;第二存储区域的地址索引信息,以及,第一存储区域与第二存储区域的关联关系被所述运算处理器用于确定第二特征对应的辅助信息,第二特征为运算处理器经过特征计算后确定的第一特征。
这里,第一特征对应的辅助信息可以为第一多媒体数据的未用于区分索引分组的描述性信息和第一特征的描述性信息,该描述性信息用于描述多媒体数据或特征的客观属性,该第一多媒体数据为第一特征对应的多媒体数据。以多媒体数据为图片为例,图片的描述性信息为图片的拍摄摄像头的标识、图片的尺寸、图片的拍摄日期、图片的拍摄时刻,其中,图片的拍摄摄像头的标识和图片的拍摄日期用于区分索引分组,即一个拍摄摄像头的标识和一个拍摄日期所对应的特征为一个索引分组中的特征,则第一特征信息对应的第一多媒体数据的辅助信息可以为图片的尺寸、图片的拍摄时刻;第一特征的描述性信息还可以为第一特征的版本信息等。
第二存储区域为存储有第一索引分组中的第一特征对应的辅助信息的存储区域。
在一种可行的实施方式中,第二存储区域的地址索引信息的形式可以与第一存储区域的地址索引信息的形式相同,即,如果第一存储区域的地址索引信息为指针,则第二存储区域的地址索引信息为指针;如果第一存储区域的地址索引信息为数据表中的内容,则第二存储区域的地址索引信息为数据表的内容等。
具体地,如果第一存储区域的地址索引信息为指针,则第二存储区域的地址索引信息可以包括至少一个第三指针,该第三指针的值为第二存储区域的第一个存储地址,其中,第三指针的个数等于第二存储区域的个数。如果第一存储区域的地址索引信息为数据表中的内容,则数据表中可以存储该至少一个第二存储区域的第一个存储地址。
可以通过将指向第一存储区域的指针(如第一指针、第二指针)和指向第二存储区域的指针设置在一个结构体中,以建立第一存储区域与第二存储区域的关联关系。也可以将第一存储区域的地址索引信息和第二存储区域的地址索引信息存放在同一个数据表中,以建立第一存储区域与第二存储区域的关联关系。
这里,第二特征为用于确定运算处理器最终输出的结果的特征,最终输出的结果指利用特征计算实现的目的时得到的结果。例如,利用特征计算实现图片检索,检索的是与用户输入的图片相似性最高的一张图片,则运算处理器最终输出的结果的为与用于输入的图片相似性最高的一张图片,第二特征为用于确定该相似性最高的一张图片的特征。
通过将第一特征对应的辅助信息保存到内部存储器的第二存储区域中并建立第二存储区域的地址索引信息和第一存储区域与第二存储区域的关联关系,在第一特征为经过特征计算后确定的特征时,可根据该第二存储区域与第一存储区域的关联关系以及第二存储区域的地址索引信息找到该第一特征对应的辅助信息在内部存储器中的存储地址,从而获取到该第一特征对应的辅助信息,进而可以根据这些辅助信息找到其对应的多媒体数据,以实现通过特征计算想要实现的目的。
在一些可能的场景中,还可以按索引分组对第一特征进行标记,以指示该第一特征是否已经存储于运算处理器中。在将第一特征读取至运算处理器之后,还可以将第一索引分组的分组标记置为第一标记,第一标记用于指示第一索引分组中的第一特征已经存储于运算处理器中;在第一索引分组中的第一特征已经从运算处理器移除的情况下,可以将第一索引分组的分组标记置为第二标记,第二标记用于指示第一索引分组中的第一特征未存储于运算处理器。
具体实现中,可以分别用0和1分别作为第一标记和第二标记。例如,可以用于1作为第一标记,用0作为第二标记,如果第一索引分组的分组标记为1,则说明第一索引分组中的第一特征在运算处理器中,如果第一索引分组的分组标记为0,则说明第一索引分组中的第一特征不在运算处理器中。
通过按照索引分组的对第一特征进行标记,实现对第一特征的按批标记,相较于分别对特征进行标记,可以节省标记的数量,一定程度上节省了存储空间。
在一些可能的场景中,在运算处理器的存储容量比较大的情况下,如果第一特征为经常被用于进行特征计算的常用特征,则可以将第一特征一直连续存储于运算处理器中,使得运算处理器在需要使用该第一特征进行特征计算时,可以直接从运算处理器中读取该第一特征。即,将第一索引分组中的第一特征读取至运算处理器之后,还可以将第一特征一直连续存储于运算处理器的第三存储区域,并建立第三存储区域的地址索引信息以及第一存储区域与第三存储区域之间的关联关系。
这里,第三存储区域为运算处理器中连续存储有第一索引分组中的第一特征的存储区域。
在一种可行的实施方式中,第三存储区域的地址索引信息的形式可以与第一存储区域的地址索引信息的形式相同,即,如果第一存储区域的地址索引信息为指针,则第三存储区域的地址索引信息为指针;如果第一存储区域的地址索引信息为数据表中的内容,则第三存储区域的地址索引信息为数据表的内容等。
具体地,如果第一存储区域的地址索引信息为指针,则第三存储区域的地址索引信息可以为第四指针,该第四指针的值为第三存储区域的第一个存储地址。如果第一存储区域的地址索引信息为数据表中的内容,则数据表中可以存储该至少一个第二存储区域的第一个存储地址。
可以通过将指向第一存储区域的指针(如第一指针、第二指针)和指向第三存储区域的指针设置在一个结构体中,以建立第一存储区域与第三存储区域的关联关系。也可以通过将第一存储区域的地址索引信息和第三存储区域的地址索引信息存放在同一个数据表中,以建立第一存储区域与第三存储区域的关联关系。
通过将第一索引分组中的第一特征一直存储在运算处理器中,当运算处理器利用该第一特征进行特征计算时,可以根据第三存储区域和第一存储区域之间的关联关系以及第三存储区域的地址索引信息确定第一特征在运算处理器中的存储地址,进而直接从该运算处理器中获取第一特征进行特征计算,不需要从内部存储器中读取,省去了将第一特征读取至内部存储器的时间。
在一种可行的实施方式中,第一特征还可以为列存储的方式持久化存储于外部存储器中的特征,即第一特征连续存储与外部存储器中。第一特征以列存储的方式持久化存储于外部存储器中可以加快将第一特征从外部存储器读取至内部存储器的时间。
为便于更好地理解本申请的方案,下面通过一个具体的例子介绍对根据上述方法实施例的方案进行特征存储、辅助信息的存储以及建立索引后所得到的特征存储与索引的方案。仍以多媒体数据为图片为例,假设索引分组为一个摄像头标识和一个拍摄日期对应的特征的集合,索引仍为三层索引,地址索引信息的形式为指针,则根据上述方案进行特征的存储和建立索引后得到的特征存储与索引的方案可以如图8所示,图8为本申请实施例提供的一种特征存储与索引的方案的示意图。在该方案中,第一层索引81a为摄像头标识的索引,通过第一层索引81a可索引至用于存储摄像头标识的摄像头标识存储区域81b,该摄像头标识存储区域81b可通过指针的方式指向第二层索引82a。第二层索引82a为拍摄日期的索引,通过第二层索引82a可索引至用于存储拍摄日期的拍摄日期存储区域82b,该拍摄日期存储区域82b可通过指针的方式指向第三层索引。第三层索引包括用于存储特征的特征存储区域83a以及用于存储特征对应的辅助信息的辅助信息存储区域83b、用于存储特征索引的特征索引存储区域83c、以及用于存储算法模型的模型存储区域83d(未在图8中体现)。特征存储区域83a包括内部存储器中的特征存储区域83a1、外部内部存储器中的特征存储区域83a2(未在图8中体现)以及运算处理器中的特征存储区域83a3。在特征存储区域83a1、特征存储区域83a2以及特征存储区域83a3中,一个拍摄标识和一个拍摄日期索引到的特征连续存储在一起,形成一个特征存储区域。一个拍摄标识和一个拍摄日期分别通过指针1和一个特征存储区域的存储空间长度L索引至特征存储区域83a1,通过指针2索引至特征存储区域83a3。一个拍摄标识和一个拍摄日期还通过指针3索引至辅助信息存储区域83c。将指针1、指针2、指针3以及一个特征存储区域的存储空间长度L关联在一起,建立特征存储区域83a3、辅助信息存储区域83a1以及特征存储区域83c相互之间的关联。
由图8可知,由于一个索引分组的特征连续存储在内部存储器的一个特征存储区域中,要将一个索引分组的特征读取至运算处理器中,只需要将地址范围为{指针1指向的存储地址,指针1指向的存储地址+L}的存储地址对应的存储区域中的数据读取至运算处理器,不需要对每个特征的存储地址进行计算,也无需进行指针跳转,缩短了将一个索引分组的特征读取至运算处理器的时间,提高了运算处理器的利用率。
接下来对将索引分组的特征读取至运算处理器的时间与运算处理器的利用率之间的关系进行介绍。仍以多媒体数据的检索场景为例,假定有m个特征需要进行输入特征计算,该m个输入特征为对用户输入的一个或多个多媒体数据进行特征提取得到的特征。每个索引分组中存在k个特征,运算处理器满负荷并行处理1个输入特征与一个索引分组中的特征的之间的特征计算所需平均时间为t1,进行1个输入特征与一个索引分组中特征之间的计算需占用运算处理器的计算资源为a%,且1/%a<=m*k,读取一个索引分组的特征至运算处理器缓存中的时间为t2。
则最优化的缓存管理需要满足的条件为:
mkt1*a%>=t2>=(m-1)kt1*a%;即,使得将一个索引分组中的特征读取至运算处理器的时间尽量接近于运算处理器处理一个输入特征与一个索引分组中的特征之间的特征计算所需的时间。
在上述条件中,t2较大时,m较大,m较大即输入特征较多,则只有在需要进行特征计算的输入特征较多的情况下才能使得运算处理器满负荷运行,当t2较小时,m较小,m较小则输入较少,则在需要进行特征计算的输入特征较少的情况下即可使得运算处理器满负荷运行。
根据上述原理可知,在需要进行特征计算的输入特征较少的情况下,本申请实施例的方案即可使得运算处理器能够满负荷运行,提高了运算处理器的利用率。
上述对本申请实施例的方法进行了介绍,接下来对本申请实施例的装置。
参见图9,图9是本申请实施例提供的一种建立索引的装置的结构示意图,如图所示,该装置90包括:
特征确定模块901,用于确定待存储至内部存储器的多个第一特征,所述多个第一特征属于第一索引分组,所述第一特征被运算处理器用于特征计算,所述第一特征为对多媒体数据进行特征提取和/或处理得到的特征;
特征信息存储模块902,用于将所述多个第一特征存储至所述内部存储器,其中,所述多个第一特征连续存储于内部存储器的第一存储区域;
地址索引建立模块903,用于建立所述第一存储区域的地址索引信息,所述地址索引信息用于指示所述第一存储区域在所述内部存储器中的地址;
特征读取模块904,用于根据所述地址索引信息,将所述第一特征读取至所述运算处理器。
在一种可能的实施方式中,所述第一特征为当前未存储于所述内部存储器的特征。
在一种可能的实施方式中,所述第一特征为持久化存储于外部存储器的特征。
在一种可能的实施方式中,所述第一特征为以列存储的方式持久化存储于所述外部存储器的特征。
在一种可能的实施方式中,第一存储区域的地址索引信息包括第一指针和第一存储空间长度,该第一指针的值为第一存储区域的第一个存储地址,该第一存储空间长度为第一存储区域的存储空间长度。
在一种可能的实施方式中,第一存储区域的地址索引信息包括第一指针和第二指针,该第一指针的值为第一存储区域的第一个存储地址,该第二指针的值为第一存储区域的最后一个存储地址。
在一种可能的实施方式中,第一存储区域的特征索引包括第一指针和剩余存储空间长度,该第一指针的值为第一存储区域中的第一个存储地址,该剩余存储空间长度为第一存储区域的最大存储空间长度与第一存储区域的存储空间长度的差值。
在一种可能的实施方式中,该装置90还可以包括:
辅助信息存储模块905,用于将所述第一特征对应的辅助信息存储至所述内部存储器,所述辅助信息为所述第一特征对应的多媒体数据的描述性信息和/或所述第一特征的描述性信息,其中,所述辅助信息存储于所述内部存储器的至少一个第二存储区域;
辅助索引建立模块906,用于建立所述第二存储区域的地址索引信息以及所述第一存储区域与所述第二存储区域的关联关系,所述第二存储区域的地址索引信息用于指示所述第二存储区域在所述内部存储器中的地址;
所述第二存储区域的地址索引信息以及所述第一存储区域与所述第二存储区域的关联关系被所述运算处理器用于,确定第二特征对应的辅助信息,所述第二特征为所述运算处理器经过特征计算后确定的第一特征。
在一种可能的实施方式中,该装置90还可以包括:
标记设置模块907,用于在所述特征读取模块将所述第一特征读取至所述运算处理器之后,将所述第一索引分组的分组标记置为第一标记,所述第一标记用于指示所述第一特征已经存储于所述运算处理器。
在一种可能的实施方式中,所述标记设置模块907还用于:在所述第一特征从所述运算处理器中移除的情况下,将所述第一索引分组的分组标记置为第二标记,所述第二标记用于指示所述第一特征未存储于所述运算处理器。
在一种可能的实施方式中,该装置90还可以包括:
特征索引建立模块908,用于在所述特征读取模块将所述第一特征读取至所述运算处理器之后,将所述第一特征一直连续存储于所述运算处理器的第三存储区域,并建立第三存储区域的地址索引信息以及所述第一存储区域与所述第三存储区域之间的关联关系;
所述第三存储区域的地址索引信息以及所述第一存储区域与第三存储区域之间的关联关系被所述运算处理器用于,根据所述第三存储区域的地址索引信息和所述第一存储区域与第三存储区域之间的关联关系,在所述运算处理器中直接读取所述第一特征以用于特征计算。
需要说明的是,图9对应的实施例中未提及的内容以及各个模块执行步骤的具体实现方式可参见方法实施例的描述,这里不再赘述。
本申请实施例还提供了一种计算机存储介质,可以用于存储上述建立索引的装置所用的计算机软件指令,其包含用于执行上述实施例中为建立索引的装置所设计的程序。该存储介质包括但不限于快闪存储器、硬盘、固态硬盘。
本申请实施例还提供了一种计算机程序产品,该计算机产品被计算设备运行时,可以执行上述方法实施例中为建立索引的装置所设计的建立索引的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是半导体介质(例如SSD)等。
本领域普通技术人员可以意识到,结合本申请中所公开的实施例描述的各示例的模块及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需说明,本申请实施例所涉及的第一、第二、第三、第四以及各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种建立索引的方法,其特征在于,包括:
确定待存储至内部存储器的多个第一特征,所述多个第一特征属于第一索引分组,所述第一特征被运算处理器用于特征计算,所述第一特征为对多媒体数据进行特征提取和/或处理得到的特征;
将所述多个第一特征存储至所述内部存储器,其中,所述多个第一特征连续存储于所述内部存储器的第一存储区域;
建立所述第一存储区域的地址索引信息,所述地址索引信息用于指示所述第一存储区域在所述内部存储器中的地址;
根据所述地址索引信息,将所述第一特征读取至所述运算处理器。
2.根据权利要求1所述的方法,其特征在于,所述第一特征为当前未存储于所述内部存储器的特征。
3.根据权利要求1或2所述的方法,其特征在于,所述第一特征为持久化存储于外部存储器的特征。
4.根据权利要求3所述的方法,其特征在于,所述第一特征为以列存储的方式持久化存储于所述外部存储器的特征。
5.根据权利要求1-4任一项所述的方法,所述地址索引信息包括第一指针和第一存储空间长度,所述第一指针的值为所述第一存储区域的第一个存储地址,所述第一存储空间长度为所述第一存储区域的存储空间长度。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述地址索引信息包括第一指针和第二指针,所述第一指针的值为所述第一存储区域的第一个存储地址,所述第二指针的值为所述第一存储区域的最后一个存储地址。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述特征索引包括第一指针和剩余存储空间长度,所述第一指针的值为所述第一存储区域的第一个存储地址,所述剩余存储空间长度为所述第一存储区域的最大存储空间长度与所述第一存储区域的存储空间长度的差值。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
将所述第一特征对应的辅助信息存储至所述内部存储器,所述辅助信息为所述第一特征对应的多媒体数据的描述性信息和/或所述第一特征的描述性信息,其中,所述辅助信息存储于所述内部存储器的至少一个第二存储区域;
建立所述第二存储区域的地址索引信息以及所述第一存储区域与所述第二存储区域的关联关系,所述第二存储区域的地址索引信息用于指示所述第二存储区域在所述内部存储器中的地址;
所述第二存储区域的地址索引信息以及所述第一存储区域与所述第二存储区域的关联关系被所述运算处理器用于,确定第二特征对应的辅助信息,所述第二特征为所述运算处理器经过特征计算后确定的第一特征。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述根据所述地址索引信息,将所述第一特征读取至所述运算处理器之后,还包括:
将所述第一索引分组的分组标记置为第一标记,所述第一标记用于指示所述第一特征已经存储于所述运算处理器。
10.根据权利要求9所述的方法,其特征在于,所述根据所述地址索引信息,将所述第一特征读取至所述运算处理器之后,还包括:
在所述第一特征从所述运算处理器中移除的情况下,将所述第一索引分组的分组标记置为第二标记,所述第二标记用于指示所述第一特征未存储于所述运算处理器。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述根据所述地址索引信息,将所述第一特征读取至所述运算处理器之后,还包括:
将所述第一特征一直连续存储于所述运算处理器的第三存储区域,并建立第三存储区域的地址索引信息以及所述第一存储区域与所述第三存储区域之间的关联关系;
所述第三存储区域的地址索引信息以及所述第一存储区域与第三存储区域之间的关联关系被所述运算处理器用于,根据所述第三存储区域的地址索引信息和所述第一存储区域与第三存储区域之间的关联关系,在所述运算处理器中直接读取所述第一特征以用于特征计算。
12.一种建立索引的装置,其特征在于,包括:
特征确定模块,用于确定待存储至内部存储器的多个第一特征,所述多个第一特征属于第一索引分组,所述第一特征被运算处理器用于特征计算,所述第一特征为对多媒体数据进行特征提取和/或处理得到的特征;
特征信息存储模块,用于将所述多个第一特征存储至所述内部存储器,其中,所述多个第一特征连续存储于内部存储器的第一存储区域;
地址索引建立模块,用于建立所述第一存储区域的地址索引信息,所述地址索引信息用于指示所述第一存储区域在所述内部存储器中的地址;
特征读取模块,用于根据所述地址索引信息,将所述第一特征读取至所述运算处理器。
13.根据权利要求12所述的装置,其特征在于,所述第一特征为当前未存储于所述内部存储器的特征。
14.根据权利要求12所述的装置,其特征在于,所述第一特征为持久化存储于外部存储器的特征。
15.根据权利要求12所述的装置,其特征在于,所述第一特征为以列存储的方式持久化存储于所述外部存储器的特征。
16.根据权利要求12-15任一项所述的装置,其特征在于,所述地址索引信息包括第一指针和第一存储空间长度,所述第一指针的值为所述第一存储区域的第一个存储地址,所述第一存储空间长度为所述第一存储区域的存储空间长度。
17.根据权利要求12-15任一项所述的装置,其特征在于,所述地址索引信息包括第一指针和第二指针,所述第一指针的值为所述第一存储区域的第一个存储地址,所述第二指针的值为所述第一存储区域的最后一个存储地址。
18.根据权利要求12-15任一项所述的装置,其特征在于,所述特征索引包括第一指针和剩余存储空间长度,所述第一指针的值为所述第一存储区域中的第一个存储地址,所述剩余存储空间长度为所述第一存储区域的最大存储空间长度与所述第一存储区域的存储空间长度的差值。
19.根据权利要求12-18任一项所述的装置,其特征在于,所述装置还包括:
辅助信息存储模块,用于将所述第一特征对应的辅助信息存储至所述内部存储器,所述辅助信息为所述第一特征对应的多媒体数据的描述性信息和/或所述第一特征的描述性信息,其中,所述辅助信息存储于所述内部存储器的至少一个第二存储区域;
辅助索引建立模块,用于建立所述第二存储区域的地址索引信息以及所述第一存储区域与所述第二存储区域的关联关系,所述第二存储区域的地址索引信息用于指示所述第二存储区域在所述内部存储器中的地址;
所述第二存储区域的地址索引信息以及所述第一存储区域与所述第二存储区域的关联关系被所述运算处理器用于,确定第二特征对应的辅助信息,所述第二特征为所述运算处理器经过特征计算后确定的第一特征。
20.根据权利要求12-19任一项所述的装置,其特征在于,所述装置还包括:
标记设置模块,用于在所述特征读取模块将所述第一特征读取至所述运算处理器之后,将所述第一索引分组的分组标记置为第一标记,所述第一标记用于指示所述第一特征已经存储于所述运算处理器。
21.根据权利要求20所述的装置,其特征在于,所述标记设置模块还用于:在所述第一特征从所述运算处理器中移除的情况下,将所述第一索引分组的分组标记置为第二标记,所述第二标记用于指示所述第一特征未存储于所述运算处理器。
22.根据权利要求12-21任一项所述的装置,其特征在于,所述装置还包括:
特征索引建立模块,用于在所述特征读取模块将所述第一特征读取至所述运算处理器之后,将所述第一特征一直连续存储于所述运算处理器的第三存储区域,并建立第三存储区域的地址索引信息以及所述第一存储区域与所述第三存储区域之间的关联关系;
所述第三存储区域的地址索引信息以及所述第一存储区域与第三存储区域之间的关联关系被所述运算处理器用于,根据所述第三存储区域的地址索引信息和所述第一存储区域与第三存储区域之间的关联关系,在所述运算处理器中直接读取所述第一特征以用于特征计算。
23.一种建立索引的装置,其特征在于,包括处理器和存储器,所述处理器与所述存储器连接,其中,所述处理器包括运算处理器,所述存储器包括内部存储器,所述内部存储器为与运算处理器耦合的存储器,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行以下操作:
确定待存储至所述内部存储器的多个第一特征,所述多个第一特征属于第一索引分组,所述第一特征被所述运算处理器用于特征计算,所述第一特征为对多媒体数据进行特征提取和/或处理得到的特征;
将所述多个第一特征存储至所述内部存储器,其中,所述多个第一特征连续存储于所述内部存储器的第一存储区域;
建立所述第一存储区域的地址索引信息,所述地址索引信息用于指示所述第一存储区域在所述内部存储器中的地址;
根据所述地址索引信息,将所述第一特征读取至所述运算处理器。
24.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时使所述计算机执行如权利要求1-11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810986041.0A CN110866127A (zh) | 2018-08-27 | 2018-08-27 | 建立索引的方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810986041.0A CN110866127A (zh) | 2018-08-27 | 2018-08-27 | 建立索引的方法以及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110866127A true CN110866127A (zh) | 2020-03-06 |
Family
ID=69651693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810986041.0A Pending CN110866127A (zh) | 2018-08-27 | 2018-08-27 | 建立索引的方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866127A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835899A (zh) * | 2021-01-29 | 2021-05-25 | 上海寻梦信息技术有限公司 | 地址库索引方法、地址匹配方法以及相关设备 |
CN113449155A (zh) * | 2021-07-16 | 2021-09-28 | 百度在线网络技术(北京)有限公司 | 用于特征表示处理的方法、装置、设备、介质和程序产品 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003198596A (ja) * | 2001-12-27 | 2003-07-11 | Furukawa Electric Co Ltd:The | アドレステーブル管理方法およびアドレステーブル管理装置 |
CN101731013A (zh) * | 2007-07-02 | 2010-06-09 | 弗劳恩霍夫应用研究促进协会 | 处理和读取具有媒体数据容器和元数据容器的文件的设备和方法 |
US20110161618A1 (en) * | 2009-12-30 | 2011-06-30 | International Business Machines Corporation | Assigning efficiently referenced globally unique identifiers in a multi-core environment |
CN103646063A (zh) * | 2013-11-27 | 2014-03-19 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种星载高速文件管理*** |
CN103841135A (zh) * | 2012-11-22 | 2014-06-04 | 腾讯科技(深圳)有限公司 | 文件加速下载方法及装置 |
CN103870544A (zh) * | 2014-02-25 | 2014-06-18 | 小米科技有限责任公司 | 虚拟操作文件的方法、装置及电子设备 |
CN104462141A (zh) * | 2013-09-24 | 2015-03-25 | ***通信集团重庆有限公司 | 一种数据存储与查询的方法、***及存储引擎装置 |
CN104657362A (zh) * | 2013-11-18 | 2015-05-27 | 深圳市腾讯计算机***有限公司 | 数据存储、查询方法和装置 |
CN104794065A (zh) * | 2015-05-04 | 2015-07-22 | 常州工学院 | 一种多分组定长数据循环存取方法 |
CN105335387A (zh) * | 2014-07-04 | 2016-02-17 | 杭州海康威视***技术有限公司 | 一种视频云存储***的检索方法 |
CN105468675A (zh) * | 2015-11-13 | 2016-04-06 | 四川长虹电器股份有限公司 | 一种结合人物识别与节假日信息的照片展示***及方法 |
CN106294352A (zh) * | 2015-05-13 | 2017-01-04 | 姚猛 | 一种文件处理方法、装置和文件*** |
CN108279943A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 索引加载方法和装置 |
CN108376177A (zh) * | 2018-03-15 | 2018-08-07 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和分布式*** |
-
2018
- 2018-08-27 CN CN201810986041.0A patent/CN110866127A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003198596A (ja) * | 2001-12-27 | 2003-07-11 | Furukawa Electric Co Ltd:The | アドレステーブル管理方法およびアドレステーブル管理装置 |
CN101731013A (zh) * | 2007-07-02 | 2010-06-09 | 弗劳恩霍夫应用研究促进协会 | 处理和读取具有媒体数据容器和元数据容器的文件的设备和方法 |
US20110161618A1 (en) * | 2009-12-30 | 2011-06-30 | International Business Machines Corporation | Assigning efficiently referenced globally unique identifiers in a multi-core environment |
CN103841135A (zh) * | 2012-11-22 | 2014-06-04 | 腾讯科技(深圳)有限公司 | 文件加速下载方法及装置 |
CN104462141A (zh) * | 2013-09-24 | 2015-03-25 | ***通信集团重庆有限公司 | 一种数据存储与查询的方法、***及存储引擎装置 |
CN104657362A (zh) * | 2013-11-18 | 2015-05-27 | 深圳市腾讯计算机***有限公司 | 数据存储、查询方法和装置 |
CN103646063A (zh) * | 2013-11-27 | 2014-03-19 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种星载高速文件管理*** |
CN103870544A (zh) * | 2014-02-25 | 2014-06-18 | 小米科技有限责任公司 | 虚拟操作文件的方法、装置及电子设备 |
CN105335387A (zh) * | 2014-07-04 | 2016-02-17 | 杭州海康威视***技术有限公司 | 一种视频云存储***的检索方法 |
CN104794065A (zh) * | 2015-05-04 | 2015-07-22 | 常州工学院 | 一种多分组定长数据循环存取方法 |
CN106294352A (zh) * | 2015-05-13 | 2017-01-04 | 姚猛 | 一种文件处理方法、装置和文件*** |
CN105468675A (zh) * | 2015-11-13 | 2016-04-06 | 四川长虹电器股份有限公司 | 一种结合人物识别与节假日信息的照片展示***及方法 |
CN108279943A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 索引加载方法和装置 |
CN108376177A (zh) * | 2018-03-15 | 2018-08-07 | 百度在线网络技术(北京)有限公司 | 用于处理信息的方法和分布式*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835899A (zh) * | 2021-01-29 | 2021-05-25 | 上海寻梦信息技术有限公司 | 地址库索引方法、地址匹配方法以及相关设备 |
CN113449155A (zh) * | 2021-07-16 | 2021-09-28 | 百度在线网络技术(北京)有限公司 | 用于特征表示处理的方法、装置、设备、介质和程序产品 |
CN113449155B (zh) * | 2021-07-16 | 2024-02-27 | 百度在线网络技术(北京)有限公司 | 用于特征表示处理的方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102129425B (zh) | 数据仓库中大对象集合表的访问方法及装置 | |
US9977598B2 (en) | Electronic device and a method for managing memory space thereof | |
CN110968585B (zh) | 面向列的存储方法、装置、设备及计算机可读存储介质 | |
CN106649538A (zh) | 人脸搜索的方法及装置 | |
CN105488176A (zh) | 数据处理方法和装置 | |
CN110866127A (zh) | 建立索引的方法以及相关装置 | |
CN116227599A (zh) | 一种推理模型的优化方法、装置、电子设备及存储介质 | |
CN111813517A (zh) | 任务队列的分配方法、装置、计算机设备及介质 | |
WO2022007596A1 (zh) | 图像检索***、方法和装置 | |
CN113010570B (zh) | 电网设备矢量数据查询方法、装置、计算机设备和介质 | |
CN111221827B (zh) | 基于图形处理器的数据库表连接方法、装置、计算机设备和存储介质 | |
US11429660B2 (en) | Photo processing method, device and computer equipment | |
CN116166583B (zh) | 一种数据精度的转换方法、装置、dma控制器及介质 | |
CN110764705B (zh) | 一种数据的读写方法、装置、设备和存储介质 | |
CN113568877A (zh) | 一种文件合并方法、装置、电子设备及存储介质 | |
CN111127592A (zh) | 一种图片填色方法、装置、电子设备及可读存储介质 | |
CN113807555B (zh) | 分拨中心的选址方法、装置、电子设备及存储介质 | |
CN114547384A (zh) | 资源对象处理方法、装置及计算机设备 | |
CN114691612A (zh) | 数据写入方法及装置、数据读取方法及装置 | |
CN112463785A (zh) | 一种数据质量监控方法、装置、电子设备及存储介质 | |
CN111934938A (zh) | 基于多属性信息融合的流网络关键节点识别方法和装置 | |
CN113411395B (zh) | 访问请求路由方法、装置、计算机设备和存储介质 | |
CN111258955A (zh) | 一种文件读取方法和***、存储介质、计算机设备 | |
CN117271440B (zh) | 一种基于freeRTOS文件信息存储方法、读取方法及相关设备 | |
CN116450669A (zh) | 数据查询方法、装置、计算机设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |