KR20160123219A - A multilevel indexing method for audio fingerprint library data - Google Patents

A multilevel indexing method for audio fingerprint library data Download PDF

Info

Publication number
KR20160123219A
KR20160123219A KR1020160005220A KR20160005220A KR20160123219A KR 20160123219 A KR20160123219 A KR 20160123219A KR 1020160005220 A KR1020160005220 A KR 1020160005220A KR 20160005220 A KR20160005220 A KR 20160005220A KR 20160123219 A KR20160123219 A KR 20160123219A
Authority
KR
South Korea
Prior art keywords
index
data
level
fingerprint
bits
Prior art date
Application number
KR1020160005220A
Other languages
Korean (ko)
Inventor
레이 왕
Original Assignee
레이 왕
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 레이 왕 filed Critical 레이 왕
Publication of KR20160123219A publication Critical patent/KR20160123219A/en

Links

Images

Classifications

    • G06F17/30778
    • 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/61Indexing; Data structures therefor; Storage structures
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B9/00Undergarments
    • A41B9/14Waistbands forming part of the undergarments; Closures therefor
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B9/00Undergarments
    • A41B9/001Underpants or briefs
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B9/00Undergarments
    • A41B9/02Drawers or underpants for men, with or without inserted crotch or seat parts
    • A41B9/023Drawers or underpants for men, with or without inserted crotch or seat parts with separate spaces for genitals
    • G06F17/30743
    • G06F17/30755
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B2300/00Details of shirts, underwear, baby linen or handkerchiefs not provided for in other groups of this subclass
    • A41B2300/35Seams
    • AHUMAN NECESSITIES
    • A41WEARING APPAREL
    • A41BSHIRTS; UNDERWEAR; BABY LINEN; HANDKERCHIEFS
    • A41B2400/00Functions or special features of shirts, underwear, baby linen or handkerchiefs not provided for in other groups of this subclass
    • A41B2400/20Air permeability; Ventilation

Landscapes

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

Abstract

The present invention provides a multilevel indexing method for audio fingerprint library data, which is capable of solving existing technical problems of low search performance and a relatively large amount of calculations in comparison of queries of a large-scaled audio fingerprint library. The multilevel indexing method for audio fingerprint library data comprises the steps of: dividing a data bit of a value with respect to each of audio fingerprints in the audio fingerprint library data into a multilevel index, i.e., an index portion and a fingerprint data portion; allowing each level of the index portion to point a next level through a pointer; and allowing a pointer of a last level in the index portion to point the fingerprint data portion. A multilevel indexing apparatus for audio fingerprint library data comprises: a division unit which divides a data bit of a value with respect to each of audio fingerprints in the audio fingerprint library data into a multilevel index, i.e., an index portion and a fingerprint data portion; a level pointing unit which allows each level of the index portion to point a next level through a pointer; and a fingerprint data portion pointing unit which allows a pointer of a last level in the index portion to point the fingerprint data portion.

Description

오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법{A MULTILEVEL INDEXING METHOD FOR AUDIO FINGERPRINT LIBRARY DATA}[0001] The present invention relates to a multilevel indexing method for audio fingerprint library data,

본 발명은 오디오 핑거프린트 인식 기술 분야에 관한 것으로서, 상세하게는 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법에 관한 것이다.
The present invention relates to the field of audio fingerprint recognition, and more particularly to a method for multilevel indexing of audio fingerprint library data.

오디오 핑거프린트 인식(audio fingerprint identification, "사운드 하운드(SoundHound)"로 흔히 알려진)은 새로운 음악 검색 기술이며, 이는 오디오 파일의 주파수 스펙트럼을 분석하고, "오디오 핑거프린트(audio fingerprint)"라 불리는 수많은 특성들을 추출하고, 상기 수많은 특성들을 이용하여 "대규모 오디오 핑거프린트 라이브러리"를 구축하며, 네트워크 서버가 설치되어, 알려지지 않은 녹음된 오디오 클립들이 클라이언트에 의해 서버로 전송되며, 동일한 알고리즘을 이용하여 서버에서 "오디오 핑거프린트"를 추출하고, 검색 알고리즘을 통해 대규모 오디오 핑거프린트 라이브러리 내 유사한 특성들을 검색하며, 검색된 몇몇 특성들에 기초하여 타겟 오디오 파일을 추측하고, 클라이언트에 그 결과를 제공함으로써 전체 인식 과정을 완료한다. 오디오 핑거프린트 인식은 데이터 집약적이며 연산 집약적인 어플리케이션이다: 어플리케이션의 인식을 보장하기 위해, 대규모 오디오 핑거프린트 라이브러리는 충분한 수의 오디오 파일들의 특성들을 구비하여야 하고, 이 스케일은 보통 천만 개 수준에 달하며, 오디오 핑거프린트의 개수는 몇 십억 개 수준에 달하고, 이는 검색 알고리즘의 거대한 계산량을 초래한다. 종래 기술에 따른 오디오 핑거프린트는 보통 키(key)-값(value) 쌍으로 표현되며, 최근의 검색 알고리즘은 보통 바이너리 트리(binary tree) 또는 해쉬 테이블(hash table)에 의해 달성되고 대규모 오디오 핑거프린트 라이브러리 내 키를 가지는 핑거프린트들의 모든 값을 키를 통해 검색하고, 문의된 핑거프린트들의 값과 동일한 모든 값들을 검색하기 위해 값들을 트래버싱(traversing)하는 것을 특징으로 한다. 키의 평균값의 숫자는 1000, 1회에 문의된 핑거프린트들의 평균 개수는 2000, 그리고 매번 인식을 위해 요구되는 비교 횟수는 적어도 2억 번이고, 거대한 계산량은 검색 동작에 심각한 영향을 미친다. 게다가, 키 값의 개수는 비균등하게 분산되어, 검색 동작에 막대한 최적화가 여전히 잠재되어 있을 뿐이고, 특히 검색 속도의 개선이 시급하다.BACKGROUND OF THE INVENTION [0002] Audio fingerprint identification (commonly known as "SoundHound") is a new music retrieval technology that analyzes the frequency spectrum of an audio file and has a number of properties called "audio fingerprints" A large-scale audio fingerprint library is constructed using the above-mentioned numerous characteristics, a network server is installed, unknown audio clips are transmitted to the server by the client, Audio fingerprint ", retrieving similar properties in a large audio fingerprint library through a search algorithm, guessing a target audio file based on some of the retrieved characteristics, and providing the result to the client to complete the entire recognition process do. Audio fingerprint recognition is a data intensive and computationally intensive application: in order to ensure recognition of an application, a large audio fingerprint library must have the characteristics of a sufficient number of audio files, and this scale usually reaches 10 million levels, The number of audio fingerprints reaches several billion, which results in a huge amount of computation of the search algorithm. Audio fingerprints in accordance with the prior art are represented by a normal key-value pair, and recent search algorithms are usually achieved by a binary tree or hash table, and a large audio fingerprint Searching all values of the fingerprints with keys in the library through the key and traversing values to retrieve all values equal to the values of the inquired fingerprints. The average number of keys is 1000, the average number of fingerprints inquired at one time is 2000, and the number of comparisons required for recognition at least 200 million times. The huge amount of calculation seriously affects the search operation. In addition, the number of key values is unevenly distributed and enormous optimization is still latent in the search operation. In particular, improvement of the search speed is urgent.

그러므로, 대규모 오디오 핑거프린트 라이브러리 데이터의 고효율 인덱싱 방법을 개선함으로써 검색 엔진의 검색 속도를 개선시키고, 더 나아가 검색 효율을 개선시킬 필요가 있다.
Therefore, there is a need to improve the search speed of the search engine and further improve the search efficiency by improving the high-efficiency indexing method of the large-scale audio fingerprint library data.

상술한 목적을 위해, 본 발명은 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법 및 장치를 제공함으로써, 대규모 오디오 핑거프린트 라이브러리의 쿼리를 비교함에 있어서 검색 성능이 저조하고 상대적으로 계산량이 많은 종래의 기술적인 문제들을 해결할 수 있다.
SUMMARY OF THE INVENTION In view of the foregoing, it is an object of the present invention to provide a method and apparatus for multi-level indexing of audio fingerprint library data, Problems can be solved.

상술한 목적을 위해, 본 발명은 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법을 제공하며, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법은, 오디오 핑거프린트 라이브러리 데이터 내 오디오 핑거프린트 각각에 대한 값의 데이터 비트를 멀티레벨 인덱스인 인덱스 포션(portion), 및 핑거프린트 데이터 포션으로 분할하는 단계; 포인터에 의해 상기 인덱스 포션의 각 레벨을 다음 레벨에 포인팅(pointing)시키는 단계; 및 상기 인덱스 포션의 마지막 레벨의 포인터를 상기 핑거프린트 데이터 포션에 포인팅시키는 단계를 포함하며, 상기 인덱스 포션은 상기 오디오 핑거프린트의 상기 데이터 비트의 앞쪽 절반(front half)에 위치하고, 상기 핑거프린트 데이터 포션은 상기 오디오 핑거프린트의 상기 데이터 비트의 뒤쪽 절반(back half)에 위치한다.
For the above purpose, the present invention provides a method for multilevel indexing of audio fingerprint library data, the method for multilevel indexing of audio fingerprint library data comprising the steps of: storing data of values for each of the audio fingerprints in the audio fingerprint library data Dividing the bit into an index portion, a multilevel index, and a fingerprint data portion; Pointing each level of the index portion to a next level by a pointer; And pointing a pointer at a last level of the index portion to the fingerprint data portion, wherein the index portion is located in the front half of the data bits of the audio fingerprint, Is located in the back half of the data bits of the audio fingerprint.

본 발명의 실시예들에 따르면, 데이터를 검색하는데 요구되는 접근(accessing)량을 상당히 감소시키고, 데이터를 비교하는데 요구되는 작업 횟수를 감소시켜, 오디오 핑거프린트 라이브러리 데이터의 효율적으로 인덱싱 효율을 개선시킨다. 게다가, 본 발명의 데이터 프로세싱이 오직 오디오 핑거프린트 라이브러리 데이터 내 오디오 핑거프린트 각각에 대한 값의 데이터 비트를 분할하기 때문에, 나뉘어진 값의 각 포션 데이터는 포인터 방식으로 상호 연관 지어지고, 이는 값을 분할하기 전에 기존의 데이터 정보를 손상시키지 않는다는 전제 조건 하에서 "값에 대한 직렬화 저장(serialization storage) 수행"을 기술적으로 지원하는 데이터 구조를 제공하여, 저장 공간의 절약을 가능하게 한다.
According to embodiments of the present invention, the amount of accessing required to retrieve data is significantly reduced, and the number of operations required to compare data is reduced to improve the efficient indexing efficiency of audio fingerprint library data . In addition, since the data processing of the present invention only divides the data bits of the values for each of the audio fingerprints in the audio fingerprint library data, each portion data of the divided values is correlated in a pointer manner, The present invention provides a data structure that technically supports "performing serialization storage on values " under the precondition that existing data information is not damaged before data is saved, thereby saving storage space.

도 1은 본 발명의 실시예 1에 있어서 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법을 나타낸 흐름도
도 2는 본 발명의 실시예 2에 있어서 분할값을 나타낸 구조도
도 3은 본 발명의 실시예 3에 있어서 오디오 핑거프린트 라이브로리 데이터의 멀티레벨 인덱싱 방법을 나타낸 흐름도
도 4는 본 발명의 실시예 4에 있어서 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법을 나타낸 흐름도
도 5는 본 발명의 실시예 5에 있어서 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 장치를 나타낸 블록도
도 6은 본 발명의 실시예 6에 있어서 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 장치를 나타낸 블록도
도 7은 본 발명의 실시예 7에 있어서 값의 분할 구조를 나타낸 도면
도 8은 본 발명의 실시예 7에 있어서 멀티레벨 인덱싱 구조의 구축 방법을 설명하기 위한 도면
도 9는 본 발명의 실시예 7에 있어서 인덱싱 구조의 직렬화 저장 방법을 설명하기 위한 도면
1 is a flowchart showing a multilevel indexing method of audio fingerprint library data according to the first embodiment of the present invention.
Fig. 2 is a schematic diagram showing the division value in the second embodiment of the present invention. Fig.
3 is a flowchart showing a multi-level indexing method of audio fingerprint library data according to the third embodiment of the present invention
4 is a flowchart showing a multilevel indexing method of audio fingerprint library data according to the fourth embodiment of the present invention.
5 is a block diagram showing a multilevel indexing apparatus for audio fingerprint library data in Embodiment 5 of the present invention
6 is a block diagram showing a multilevel indexing apparatus for audio fingerprint library data according to Embodiment 6 of the present invention.
7 is a view showing a divided structure of values in the seventh embodiment of the present invention
8 is a diagram for explaining a method for constructing a multilevel indexing structure in a seventh embodiment of the present invention
9 is a diagram for explaining a serialization storing method of the indexing structure in the seventh embodiment of the present invention

이하, 본 발명의 구체적인 실시예가 도면들 및 예시들과 함께 상세하게 설명될 것이다. 후술되는 실시예들은 오직 본 발명의 설명을 위한 것일 뿐, 본 발명의 범위를 한정하는 것은 아니다.
Hereinafter, specific embodiments of the present invention will be described in detail with reference to the drawings and examples. The embodiments described below are for illustrative purposes only and are not intended to limit the scope of the invention.

실시예 1:Example 1:

일반론에 있어서, 도 1에 도시된 바와 같이, 본 발명은 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법을 제공하며, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법은, 1, the present invention provides a method for multilevel indexing of audio fingerprint library data, the method for multilevel indexing of audio fingerprint library data comprising the steps of:

오디오 핑거프린트 라이브러리 데이터 내 오디오 핑거프린트 각각에 대한 값의 데이터 비트를, 멀티레벨 인덱스인 인덱스 포션(portion), 및 핑거프린트 데이터 포션으로 분할하는 단계(S1000);Dividing the data bits of the values for each of the audio fingerprints in the audio fingerprint library data into an index portion, a multilevel index, and a fingerprint data portion (S1000);

포인터에 의해 상기 인덱스 포션의 각 레벨을 다음 레벨에 포인팅(pointing)시키는 단계(S2000); 및Pointing each level of the index portion to a next level by a pointer (S2000); And

상기 인덱스 포션의 마지막 레벨의 포인터를 상기 핑거프린트 데이터 포션에 포인팅시키는 단계(S3000)를 포함한다.And pointing the pointer of the last level of the index portion to the fingerprint data portion (S3000).

오디오 핑거프린트 라이브러리 데이터 내 오디오 핑거프린트 각각에 대한 값의 데이터 비트를, 인덱스 포션, 및 핑거프린트 데이터 포션으로 분할함으로써, 본 발명은 멀티레벨 인덱싱 실현을 기술적으로 지원하는 데이터 구조를 제공하며; 검색하는데 있어서, 오직 이전-레벨 인덱싱 조건을 만족하는 값들 중 다음-레벨 인덱싱 조건을 만족하는 값들을 검색해야 하고; 레벨 별로 비교할 수 있기 때문에, 다음 레벨의 검색량은 마지막 레벨의 검색량보다 훨씬 적으며, 이는 데이터를 검색하는데 요구되는 접근량을 상당히 감소시키고, 데이터를 비교하는데 요구되는 작업 횟수를 감소시켜, 오디오 핑거프린트 라이브러리 데이터의 효율적으로 인덱싱 효율을 개선시킨다. 게다가, 본 발명의 데이터 프로세싱이 오직 오디오 핑거프린트 라이브러리 데이터 내 오디오 핑거프린트 각각에 대한 값의 데이터 비트를 분할하기 때문에, 분할된 값의 각 포션 데이터는 포인터 방식으로 상호 연관 지어지고, 이는 값을 분할하기 전에 기존의 데이터 정보를 손상시키지 않는다는 전제 조건 하에서 "값에 대한 직렬화 저장 수행"을 기술적으로 지원하는 데이터 구조를 제공하여, 저장 공간의 절약을 가능하게 한다.
By dividing the data bits of the values for each of the audio fingerprints in the audio fingerprint library data into index portions and fingerprint data portions, the present invention provides a data structure that technically supports multilevel indexing realization; In retrieving, only those values that satisfy the next-level indexing condition among the values that satisfy the previous-level indexing condition must be retrieved; Because of the level-by-level comparison, the search volume of the next level is much less than the search volume of the last level, which significantly reduces the amount of access required to retrieve the data, reduces the number of operations required to compare the data, Thereby improving the indexing efficiency of the fingerprint library data efficiently. In addition, since the data processing of the present invention only divides the data bits of the value for each of the audio fingerprints in the audio fingerprint library data, each portion of the divided value is correlated in a pointer manner, It provides a data structure that technically supports "perform serialization storage for values" under the precondition that the existing data information is not damaged before it is done, thereby saving storage space.

실시예 2:Example 2:

바람직하게는, 도 2에 도시된 바와 같이, 본 발명에서, 분할된 값의 앞쪽 절반(front half)은 인덱스 포션(portion) YN으로 여겨지며, 나뉘어진 값의 뒤쪽 절반(back half)은 핑거프린트 데이터 포션 SJ로 여겨지고, 오직 상기 값의 앞쪽 절반만이 값을 검색하기 위한 인덱스 코드의 역할을 수행하며, 이는 인덱싱의 정확성에 영향을 주지 않는다는 전제 조건 하에서 인덱스를 비교함에 있어서 계산량을 감소시킨다.
Preferably, as shown in FIG. 2, in the present invention, the front half of the divided value is considered as the index portion YN, and the back half of the divided value is the fingerprint data It is considered a potion SJ, and only the former half of the value serves as the index code for retrieving the value, which reduces the amount of computation in comparing the index under the precondition that it does not affect the accuracy of the indexing.

실시예 3:Example 3:

바람직하게는, 도 3에 도시된 바와 같이, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법의 단계들에서, 실시예 1에 기초하여, 본 발명은,Preferably, in the steps of the multi-level indexing method of the audio fingerprint library data, as shown in Fig. 3, on the basis of the first embodiment,

인덱스 리스트를 구축하는 단계(S4000)를 더 포함하고, 상기 인덱스 리스트를 구축하는 단계(S4000)는, (S4000) constructing an index list, and the step of constructing the index list (S4000)

상기 인덱스 리스트 내 각 레벨에 복수의 인덱스 비트를 포함시키는 단계(S4100);Including a plurality of index bits at each level in the index list (S4100);

상기 인덱스 리스트 내 이전 레벨에서의 인덱스 비트 각각을 다음 레벨에서의 복수의 인덱스 비트에 대응시키는 단계(S4200);Associating each of the index bits at a previous level in the index list with a plurality of index bits at a next level (S4200);

마지막 레벨에 위치한 모든 인덱스 비트를, 포인팅되는 핑거프린트 데이터에 대응시키는 단계(S4300)를 포함한다.And associating all index bits located at the last level with the fingerprint data pointed to (S4300).

더 편리한 인덱싱을 구현하기 위해, 인덱스 포션과 동일한 데이터 포맷을 가지는 인덱스 리스트가 구축되며, 인덱스 리스트의 구축은, 값에 대한 직렬화 저장 및 고효율 오디오 핑거프린트 데이터 인덱싱의 수행을 위한 강력한 기술적 지원을 제공한다. 오디오 핑거프린트를 검색하는데 있어서, 오직 액세스(access) 인덱스 리스트만이 요구되어, "검색 대상 값"에 대한 데이터 검색이 수행된다.In order to implement more convenient indexing, an index list having the same data format as the index portion is constructed, and the construction of the index list provides powerful technical support for performing serialization storage of values and high-efficiency audio fingerprint data indexing . In retrieving the audio fingerprint, only an access index list is required, and a data retrieval for the "retrieval object value" is performed.

바람직하게는, 상기 인덱스 포션은 2-레벨 인덱스이다. 본 발명은 2-레벨 인덱스를 채용하고 이에 적용될 인덱스 리스트를 구축함으로써 인덱스 포션에 대한 구조 직렬화 저장(structure serialization storage)을 실현하며, 메모리의 사용이 더욱 컴팩트해지고, 효율적으로 메모리 단편화의 발생을 감소시킨다; 이때 인덱스 리스트는 제1 레벨 인덱스에 대한 제2 레벨 인덱스의 오프셋(offset) 위치를 유지하기 위해 사용된다.Preferably, the index portion is a two-level index. The present invention employs a two-level index and implements structure serialization storage for the index portion by constructing an index list to be applied thereto, and the use of the memory becomes more compact and efficiently reduces the occurrence of memory fragmentation ; Wherein the index list is used to maintain an offset position of the second level index for the first level index.

바람직하게는, 2-레벨 인덱스에서, 각 레벨의 인덱스를 차지하는 데이터 비트의 개수는 동일하다.Preferably, in the two-level index, the number of data bits occupying the index of each level is the same.

바람직하게는, 오디오 핑거프린트에 대한 값의 데이터 비트는 32비트 또는 64비트이다.Preferably, the data bits of the values for the audio fingerprint are 32 bits or 64 bits.

32-비트 및 64-비트 정수(integer)로 분할함으로써, 멀티레벨 인덱스 구축 방법에 따라, 본 발명은 검색하는데 있어서 비교되어야 할 검색 범위 및 데이터량이 급격하게 축소될 수 있어, 계산량이 줄어들고 쿼리(query) 성능이 개선된다.
According to the multi-level index construction method, by dividing into 32-bit and 64-bit integers, the search range and amount of data to be compared in search can be sharply reduced and the amount of calculation is reduced, ) Performance is improved.

실시예 4:Example 4:

바람직하게는, 실시예 3에 기초하여, 본 발명은 2-레벨 인덱스를 순서대로 제1 레벨 인덱스 및 제2 레벨 인덱스라 하고; 도 4에 도시된 바와 같이, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법은,Preferably, based on Embodiment 3, the present invention refers to a two-level index as a first level index and a second level index in order; As shown in FIG. 4, a method for multi-level indexing of audio fingerprint library data includes:

인덱스 포션에 대한 구조 직렬화 저장을 수행하는 단계(S5000)를 포함하고, 인덱스 포션에 대한 구조 직렬화 저장을 수행하는 단계(S5000)는,(S5000) of performing structure serialization storage for the index portion, and performing the structure serialization storage for the index portion (S5000)

상기 제1 레벨 인덱스에 이어, 상기 제1 레벨 인덱스를 포인팅하는 상기 제2 레벨 인덱스의 몇몇 데이터 비트, 및 상기 제2 레벨 인덱스가 포인팅하는 핑거프린트 데이터를 순차적으로 각각 저장하여, 상기 제1 레벨 인덱스의 데이터 비트와 동일한 숫자를 가지는 데이터 블록들을 형성하는 단계(S5100); 및Successively storing the first level index followed by some data bits of the second level index pointing to the first level index and the fingerprint data pointing to by the second level index, (S5100) the data blocks having the same number as the data bits of the data blocks; And

상기 데이터 블록들을 순차적으로 저장하는 단계(S5200)를 포함한다.And sequentially storing the data blocks (S5200).

바람직하게는, 인덱스 리스트는 어레이(array) 형태로 존재한다.
Preferably, the index list is in the form of an array.

실시예 5:Example 5:

도 6에 도시된 바와 같이, 앞선 실시예들에 기초하여, 본 발명은 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱스 장치를 제공하며, 이는 상술한 인덱싱 기능을 지원하는 더 나은 하드웨어 구조를 제공하며, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱스 장치는,6, the present invention provides a multi-level index device of audio fingerprint library data, which provides a better hardware structure to support the indexing function described above, A multi-level index device of fingerprint library data,

오디오 핑거프린트 라이브러리 데이터 내 오디오 핑거프린트 각각에 대한 값의 데이터 비트를, 멀티레벨 인덱스인 인덱스 포션(portion), 및 핑거프린트 데이터 포션으로 분할하는 분할부(100);A division unit (100) for dividing the data bits of the values for each of the audio fingerprints in the audio fingerprint library data into an index portion, which is a multilevel index, and a fingerprint data portion;

포인터에 의해 상기 인덱스 포션의 각 레벨을 다음 레벨에 포인팅(pointing)시키는 레벨 포인팅부(200); 및A level pointing unit 200 for pointing each level of the index portion to a next level by a pointer; And

상기 인덱스 포션의 마지막 레벨의 포인터를 상기 핑거프린트 데이터 포션에 포인팅시키는 핑거프린트 데이터 포션 포인팅부(300)를 포함한다.
And a fingerprint data portion pointing unit 300 for pointing a pointer at a last level of the index portion to the fingerprint data portion.

실시예 6:Example 6:

도 6에 도시된 바와 같이, 실시예 5에 기초하여, 본 실시예에서 제공된 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱스 장치는, 인덱스 리스트를 구축하는 인덱스 리스트 구축부(400)를 더 포함하고, 인덱스 리스트 구축부(400)는,6, on the basis of Embodiment 5, the multi-level index device for audio fingerprint library data provided in the present embodiment further includes an index list construction unit 400 for constructing an index list, The list construction unit 400,

상기 인덱스 리스트 내 각 레벨에 복수의 인덱스 비트를 포함시키는 인덱스 비트 포함부(410);An index bit storage unit 410 for storing a plurality of index bits at each level in the index list;

상기 인덱스 리스트 내 이전 레벨에서의 상기 인덱스 비트 각각을 다음 레벨에서의 복수의 인덱스 비트에 대응시키는 인덱스 비트 대응부(420); 및An index bit counter 420 for mapping each of the index bits at a previous level in the index list to a plurality of index bits at a next level; And

마지막 레벨에 위치한 모든 인덱스 비트를, 포인팅되는 핑거프린트 데이터에 대응시키는 핑거프린트 데이터 대응부(430)를 포함한다.
And a fingerprint data counterpart 430 for mapping all the index bits located at the last level to the fingerprint data to be pointed.

실시예 7:Example 7:

32-비트를 예로 들면, 상기 예는 다음과 같은 4 단계 실시예들로 분리된다:Taking a 32-bit as an example, the example is split into four steps as follows:

1. 구축되어야 할 인덱스 레벨을 결정하는 단계, 인덱스 구조에서 데이터 섹션을 선택하는 단계로서, 이때 1 바이트(byte)가 256가지 인덱스 위치들과 대응된다. 도 7 내지 10에 도시된 바와 같이, 32 비트 값 중 0 내지 7번째 비트(value0-7)는 인덱스 포션의 제1 레벨 인덱스를 구축하는데 사용되고, 32 비트 값 중 8 내지 15번째 비트(value8-15)는 인덱스 포션의 제2 레벨 인덱스를 구축하는데 사용되고, 32 비트 값 중 16 내지 31번째 비트(value16-31)는 핑거프린트 데이터 포션에 이용된다.1. Determining the index level to be constructed, selecting a data section in the index structure, where one byte corresponds to 256 index positions. 7 to 10. As shown in, 32-bit value from 0 to 7th bit (value 0-7) is used to establish a first level index of the index portion, of the 32-bit value from 8 to 15-th bit (value 8 -15 ) is used to construct the second level index of the index portion, and the 16th to 31st bits (value 16-31 ) of the 32-bit value are used for the fingerprint data portion.

2. 상기 인덱스 포션으로부터 시작하여 데이터를 분할하는 단계, 인덱스 구조를 구축하는 단계이다. 예를 들어, 제1 레벨 인덱스는 제2 레벨 인덱스에 포인팅되며, 제2 레벨 인덱스는 데이터 포션에 포인팅된다.2. The step of dividing the data starting from the index portion and constructing the index structure. For example, a first level index is pointed to a second level index, and a second level index is pointed to a data position.

3. 직렬화 인덱스 구조를 구축하는 단계로서, 도 8에 도시된 바와 같이, 제1 레벨 인덱스에 대한 제2 레벨 인덱스의 오프셋 위치를 유지하는 하나의 정수-타입(integer-type) 어레이(array)를 구축하는 단계이며, 이는 제1 레벨 인덱스(value0-7로 구성된)와 일대일 대응 관계이며 256의 길이를 가지며, 이후 뒤쪽 방향으로 제2 레벨 인덱스에 대한 제2 레벨 인덱스(value8-15로 구성된)의 데이터 포션의 오프셋 위치에 대한 정수-타입 어레이를 배치시키고, 이후 제2 레벨 인덱스의 데이터 포션인 value16-31을 배치시키고, 이후 오프셋 위치의 상기 어레이들을 계산하고 업데이트한다.3. Constructing a serialization index structure, one integer-type array that maintains the offset position of the second level index for the first level index, as shown in FIG. 8, Which has a one-to-one correspondence relationship with the first level index (consisting of value 0-7 ) and has a length of 256, and then has a second level index (consisting of value 8-15) for the second level index in the backward direction Type array for the offset position of the data portion of the second level index, and then positions the value portion 16-31 , which is the data portion of the second level index, and then computes and updates the arrays of offset positions.

도 9에 도시된 바와 같이, 제1 레벨 인덱스, 제2 레벨 인덱스 및 핑거프린트 데이터는 다음과 같은 포맷에 따라 저장된다:9, the first level index, the second level index, and the fingerprint data are stored according to the following format:

제1 레벨 인덱스의 제1 데이터, 상기 제1 레벨 인덱스의 제1 데이터를 포인팅하는 제2 레벨 인덱스의 제1 데이터 및 이들에 대응되는 핑거프린트 데이터, 제2 레벨 인덱스의 제2 데이터 및 이들에 대응되는 핑거프린트 데이터; 제2 레벨 인덱스의 마지막 하나의 데이터 및 이들에 대응되는 핑거프린트 데이터;The first data of the first level index, the first data of the second level index pointing to the first data of the first level index, and the fingerprint data corresponding thereto, the second data of the second level index, and the corresponding Fingerprint data; The last one data of the second level index and the corresponding fingerprint data;

제1 레벨 인덱스의 제2 데이터, 제1 레벨 인덱스의 제1 데이터에 대응되는 제2 레벨 인덱스의 제1 데이터 및 제2 레벨 인덱스 레벨의 제1 데이터에 대응되는 핑거프린트, 제2 레벨 인덱스의 제2 데이터 및 이들에 대응되는 핑거프린트 데이터; 제2 레벨 인덱스의 마지막 하나의 데이터 및 이들에 대응되는 핑거프린트 데이터;The first data of the first level index, the first data of the second level index corresponding to the first data of the first level index, the fingerprint corresponding to the first data of the second level index level, 2 data and fingerprint data corresponding thereto; The last one data of the second level index and the corresponding fingerprint data;

제1 레벨 인덱스의 마지막 하나의 데이터, 제1 레벨 인덱스의 마지막 하나의 데이터에 대응되는 제2 레벨 인덱스의 제1 데이터 및 제2 레벨 인덱스의 제1 데이터에 대응되는 핑거프린트 데이터, 제2 레벨 인덱스의 제2 데이터 및 이들에 대응되는 핑거프린트 데이터 …제2 레벨 인덱스의 마지막 하나의 데이터 및 이들에 대응되는 핑거프린트 데이터;The first data of the first level index, the first data of the second level index corresponding to the last one data of the first level index, and the fingerprint data corresponding to the first data of the second level index, And the fingerprint data corresponding to the second data. The last one data of the second level index and the corresponding fingerprint data;

4. 검색하는데 있어서, 먼저 검색된 값의 0 내지 7번째 비트에 따라 제1 레벨 인덱스 내 제2 레벨 인덱스의 위치를 찾고, 값의 8 내지 15번째 비트에 띠라 k번째 데이터 포션의 오프셋 위치 offset_k를 찾으며, (offset_k+1)-offset_k에 따라 k번째 데이터 포션의 길이 size_k를 계산하고, 이후 데이터 포션을 가로지르고 동일한 값을 가지는 모든 타겟 값들을 불러온다.4. In the search, the position of the second level index in the first level index is searched according to the 0th to 7th bits of the searched value, the offset position offset_k of the kth data portion is found in the 8th to 15th bits of the value , (offset_k + 1) -offset_k to calculate the length size_k of the k-th data portion, and then fetches all target values having the same value across the data portion.

인덱스는 쿼리 코드(query code)에 의해 획득될 수 있고, 상기 쿼리 코드는 인덱스 포션의 날짜와 동일한 포맷을 가진다; 쿼리 코드는 각 레벨 별로 인덱스 포션과 비교되고, 각 레벨을 비교하는 인덱스 범위는 이전 레벨의 비교 조건을 만족하는 값으로 한정된다; 쿼리 코드가 오디오 핑거프린트 라이브러리 데이터에 위치한 하나의 값의 인덱스 포션과 완전히 일치하는 경우, 쿼리 결과는 상기 값을 포인팅한다.The index can be obtained by a query code, and the query code has the same format as the date of the index portion; The query code is compared with the index portion for each level, and the index range for comparing each level is limited to a value that satisfies the comparison condition of the previous level; If the query code fully matches the index portion of a value located in the audio fingerprint library data, the query result points to the value.

본 발명의 스토리지 데이터 비트는 종래 기술에 적합한 32-비트 스토리지 및 64-비트 스토리지에 한정되지 않음을 유의하여야 하고, 예를 들어 128-비트 데이터 스토리지에 적용되는 상기 방법 및 장치는 이에 근거하여 본 발명의 청구된 범위에 포함되어야 한다.
It should be noted that the storage data bits of the present invention are not limited to 32-bit storage and 64-bit storage suitable for the prior art, and the method and apparatus applied to, for example, 128- Should be included in the claimed range.

100: 분할부
200: 레벨 포인팅부
300: 데이터 포션 포인팅부
400: 인덱스 리스트 구축부
410: 인덱스 비트 포함부
420: 인덱스 비트 대응부
100: minute installment
200: Level pointing unit
300: Data potion pointing unit
400: Index list building section
410: Including index bits
420: index bit counterpart

Claims (6)

오디오 핑거프린트 라이브러리 데이터 내 오디오 핑거프린트 각각에 대한 값의 데이터 비트를 멀티레벨 인덱스인 인덱스 포션(portion), 및 핑거프린트 데이터 포션으로 분할하는 단계;
포인터에 의해 상기 인덱스 포션의 각 레벨을 다음 레벨에 포인팅(pointing)시키는 단계; 및
상기 인덱스 포션의 마지막 레벨의 포인터를 상기 핑거프린트 데이터 포션에 포인팅시키는 단계를 포함하며,
상기 인덱스 포션은 상기 오디오 핑거프린트의 상기 데이터 비트의 앞쪽 절반(front half)에 위치하고,
상기 핑거프린트 데이터 포션은 상기 오디오 핑거프린트의 상기 데이터 비트의 뒤쪽 절반(back half)에 위치하는, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법.
Dividing the data bits of the values for each of the audio fingerprints in the audio fingerprint library data into an index portion, a multilevel index, and a fingerprint data portion;
Pointing each level of the index portion to a next level by a pointer; And
Pointing the pointer of the last level of the index portion to the fingerprint data portion,
Wherein the index portion is located in the front half of the data bits of the audio fingerprint,
Wherein the fingerprint data portion is located in the back half of the data bits of the audio fingerprint.
청구항 1에 있어서,
인덱스 리스트를 구축하는 단계를 더 포함하며,
상기 인덱스 리스트를 구축하는 단계는,
상기 인덱스 리스트 내 각 레벨에 복수의 인덱스 비트를 포함시키고;
상기 인덱스 리스트 내 이전 레벨에서의 인덱스 비트 각각을 다음 레벨에서의 복수의 인덱스 비트에 대응시키며;
마지막 레벨에 위치한 모든 인덱스 비트를, 포인팅되는 핑거프린트 데이터에 대응시키는, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법.
The method according to claim 1,
Further comprising building an index list,
The step of constructing the index list comprises:
Including a plurality of index bits at each level in the index list;
Associating each of the index bits at a previous level in the index list with a plurality of index bits at a next level;
And associating all index bits located at the last level with the fingerprint data being pointed to.
청구항 2에 있어서,
상기 인덱스 포션은 2-레벨 인덱스인, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법.
The method of claim 2,
Wherein the index portion is a two-level index.
청구항 3에 있어서,
상기 2-레벨 인덱스에서, 각 레벨의 인덱스를 차지하는 데이터 비트의 개수는 동일한, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법.
The method of claim 3,
Wherein in the two-level index, the number of data bits occupying the index of each level is the same.
청구항 4에 있어서,
상기 오디오 핑거프린트에 대한 값의 데이터 비트는 32비트 또는 64비트인, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법.
The method of claim 4,
Wherein the data bits of the values for the audio fingerprint are 32 bits or 64 bits.
청구항 3 내지 5 중 어느 한 항에 있어서,
상기 2-레벨 인덱스는 제1 레벨 인덱스 및 제2 레벨 인덱스를 포함하며;
상기 인덱스 리스트를 구축하는 단계는, 상기 인덱스 포션에 대한 구조 직렬화 저장(structure serialization storage)을 수행하는 단계를 더 포함하며,
상기 구조 직렬화 저장을 수행하는 단계는,
상기 제1 레벨 인덱스에 이어, 상기 제1 레벨 인덱스를 포인팅하는 상기 제2 레벨 인덱스의 몇몇 데이터 비트, 및 상기 제2 레벨 인덱스가 포인팅하는 핑거프린트 데이터를 순차적으로 각각 저장하여, 상기 제1 레벨 인덱스의 데이터 비트와 동일한 숫자를 가지는 데이터 블록들을 형성하는 단계; 및
상기 데이터 블록들을 순차적으로 저장하는 단계를 포함하는, 오디오 핑거프린트 라이브러리 데이터의 멀티레벨 인덱싱 방법.
The method according to any one of claims 3 to 5,
Wherein the two-level index comprises a first level index and a second level index;
Wherein constructing the index list further comprises performing structure serialization storage for the index portion,
Wherein performing the structure serialization storage comprises:
Successively storing the first level index followed by some data bits of the second level index pointing to the first level index and the fingerprint data pointing to by the second level index, ≪ / RTI > forming data blocks having the same number as the data bits of the data blocks; And
And sequentially storing the data blocks. ≪ Desc / Clms Page number 19 >
KR1020160005220A 2015-04-15 2016-01-15 A multilevel indexing method for audio fingerprint library data KR20160123219A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510179068.5 2015-04-15
CN201510179068.5A CN104765836B (en) 2015-04-15 2015-04-15 A kind of multiple index method for audio-frequency fingerprint library data

Publications (1)

Publication Number Publication Date
KR20160123219A true KR20160123219A (en) 2016-10-25

Family

ID=53647665

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020150171602A KR20160123212A (en) 2015-04-15 2015-12-03 A multilevel indexing method for audio fingerprint library data
KR1020160005220A KR20160123219A (en) 2015-04-15 2016-01-15 A multilevel indexing method for audio fingerprint library data

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020150171602A KR20160123212A (en) 2015-04-15 2015-12-03 A multilevel indexing method for audio fingerprint library data

Country Status (3)

Country Link
KR (2) KR20160123212A (en)
CN (1) CN104765836B (en)
DE (1) DE102016002116A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109388729A (en) * 2017-08-14 2019-02-26 阿里巴巴集团控股有限公司 Search method, device and the audio query system of audio sub fingerprint
CN110275979A (en) * 2019-07-01 2019-09-24 成都启英泰伦科技有限公司 A kind of mapping management process of voice data and text data
CN112347272B (en) * 2020-09-18 2023-03-10 国家计算机网络与信息安全管理中心 Streaming matching method and device based on audio and video dynamic characteristics

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006134169A (en) * 2004-11-08 2006-05-25 Nec Corp Search engine system, indexing device, index information relay device and information retrieval method
CN103092848B (en) * 2011-10-28 2016-09-07 浙江大华技术股份有限公司 A kind of picture storage and retrieval method
CN103593409A (en) * 2013-10-22 2014-02-19 深圳市康拓普信息技术有限公司 Real-time database retrieval method and real-time database retrieval system

Also Published As

Publication number Publication date
DE102016002116A1 (en) 2016-10-20
CN104765836A (en) 2015-07-08
KR20160123212A (en) 2016-10-25
CN104765836B (en) 2019-03-26

Similar Documents

Publication Publication Date Title
US7080091B2 (en) Inverted index system and method for numeric attributes
Yagoubi et al. Massively distributed time series indexing and querying
CN111324750B (en) Large-scale text similarity calculation and text duplicate checking method
US11106708B2 (en) Layered locality sensitive hashing (LSH) partition indexing for big data applications
CN108304409B (en) Carry-based data frequency estimation method of Sketch data structure
Fu et al. Privacy-preserving smart similarity search based on simhash over encrypted data in cloud computing
JP2014534486A (en) Method, system, and computer program for scalable data duplication
US10241979B2 (en) Accelerated detection of matching patterns
US20190005101A1 (en) Method and apparatus for accessing time series data in memory
KR20160123219A (en) A multilevel indexing method for audio fingerprint library data
Cormode et al. Fast mining of massive tabular data via approximate distance computations
KR20230170891A (en) In-memory efficient multistep search
US11210280B2 (en) Systems and methods for fast bloom filter operations
Chen et al. A fast retrieval algorithm based on fibonacci hashing for audio fingerprinting systems
CN111143373A (en) Data processing method and device, electronic equipment and storage medium
Chappell et al. Efficient top-k retrieval with signatures
Moia et al. A comparative analysis about similarity search strategies for digital forensics investigations
US8988258B2 (en) Hardware compression using common portions of data
US20180285419A1 (en) Method of sparse array implementation for large arrays
JP2007048318A (en) Relational database processing method and relational database processor
Baluja et al. Permutation grouping: intelligent hash function design for audio & image retrieval
CN114416741A (en) KV data writing and reading method and device based on multi-level index and storage medium
KR101587756B1 (en) Apparatus and method for searching string data using bloom filter pre-searching
Chauhan et al. Finding similar items using lsh and bloom filter
JP2000090115A (en) Index generating method and retrieval method