KR101740271B1 - 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치 - Google Patents

온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치 Download PDF

Info

Publication number
KR101740271B1
KR101740271B1 KR1020160004208A KR20160004208A KR101740271B1 KR 101740271 B1 KR101740271 B1 KR 101740271B1 KR 1020160004208 A KR1020160004208 A KR 1020160004208A KR 20160004208 A KR20160004208 A KR 20160004208A KR 101740271 B1 KR101740271 B1 KR 101740271B1
Authority
KR
South Korea
Prior art keywords
audio fingerprints
key value
audio
key
same
Prior art date
Application number
KR1020160004208A
Other languages
English (en)
Other versions
KR20160100226A (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 KR20160100226A publication Critical patent/KR20160100226A/ko
Application granted granted Critical
Publication of KR101740271B1 publication Critical patent/KR101740271B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • G06F17/30778
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • G06F16/2386Bulk updating operations
    • 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
    • G06F17/30377
    • G06F17/30743
    • G06F17/30755
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Library & Information Science (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)

Abstract

온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스의 구축 방법에 있어서, 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 단계; 상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계, 상기 인덱스 리스트 내 상기 키 값 각각을 포인터 방식으로 상기 키 값 각각에 대응되는 오디오 핑거프린트들에 포인팅(pointing)시키는 단계; 및 상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 계속적으로 저장하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법이 개시된다.

Description

온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치{METHOD AND DEVICE FOR CONSTRUCTING ON-LINE REAL-TIME UPDATING OF MASSIVE AUDIO FINGERPRINT DATABASE}
본 발명은 오디오 핑거프린트 인식 기술 분야에 관한 것으로서, 상세하게는 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치에 관한 것이다.
대규모 오디오 핑거프린트 데이터베이스의 업데이트 방법에 있어서, 인덱스 데이터가 메모리 일부에 계속적으로 저장되기 때문에, 종래의 기술에 따라 온라인 상에서 오디오 핑거프린트 인덱스 데이터를 추가, 삭제하는 것은 매우 어려우며, 모든 업데이트는 서버를 재시작해야 한다. 도 1에 도시된 바와 같이, 종래 기술에 따르면, 대규모 오디오 핑거프린트 인덱스 데이터베이스는 일반적으로 복수의 고정된 소형 오디오 핑거프린트 데이터베이스(piece 1, piece 2, …, piece n)로 분할되며, 일정 수만큼의 새로운 데이터가 축적된 이후, 오프라인 상에서 꽉 차지 않은 마지막 오디오 핑거프린트 데이터베이스(piece n)를 재구축하고, 서비스를 재시작(서비스를 재시작하고 piece n을 업데이트) 하고, 온라인 상의 최신 오디오 핑거프린트 데이터베이스를 대체하여야 한다. 그러므로, 오프라인 상에서 데이터베이스를 구축하고 서비스를 재시작하는 인덱스 데이터 업데이트 방법은 작업이 번거롭다는 특유의 결점을 가지고 있으며, 제 시간에 업데이트되지 않고, 새로운 노래 검색 서비스를 제 시간에 제공할 수 없음을 알 수 있다.
이러한 목적을 위해, 본 발명은, 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 방법 및 장치를 제안하여, 종래 기술에 따른 불편한, 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 기술적 문제를 해결할 수 있도록 한다.
본 발명은 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스의 구축 방법에 있어서, 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 단계; 상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계, 상기 인덱스 리스트 내 상기 키 값 각각을 포인터 방식으로 상기 키 값 각각에 대응되는 오디오 핑거프린트들에 포인팅(pointing)시키는 단계; 및 상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 계속적으로 저장하는 단계를 포함하며, 상기 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 단계는, 상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 동일한 어레이로 분류하는 단계를 포함하며, 상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계는, 상기 인덱스 리스트에 상기 키 값들과 동일한 숫자를 가지는 어레이를 포함시키는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법을 제공한다.
본 발명은 온라인 서비스 엔진이 노래 핑거프린트의 실시간 추가, 삭제를 지원하여 검색 서비스에 지장 없이 1초 이내에 완료될 수 있도록 하여, 오프라인 데이터베이스 구축 및 서비스 재시작에 의해 초래되는 시간을 소모하는 번거로운 작업을 회피하고, 대규모 오디오 핑거프린트 데이터베이스의 데이터의 시기적절함을 보장하며; 제2 단계의 데이터 업데이트 시 요구되는 응답성을 실현하고, 오디오 데이터의 검색 서비스, 즉 온라인 서비스로서 의미를 가지는 온라인 상의 서비스에서 최신 노래들을 추가할 수 있고, 시기가 지난 의심스러운 노래들을 삭제할 수 있다.
도 1은 종래 기술에 따른 업데이트되는 대규모 오디오 핑거프린트 데이터베이스 구축 방법을 나타낸 구조도
도 2는 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 방법을 설명하기 위한 흐름도
도 3은 동일한 키 값을 가지는 오디오 핑거프린트들과 키 값 사이의 대응 관계를 나타내는 구조도
도 4는 인덱스 리스트 단계의 실시예를 나타내는 구조도
도 5는 인덱스 리스트를 나타낸 구조도
도 6은 키 값 및 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트의 구축 단계의 구체적인 작업을 나타낸 흐름도
도 7은 온라인 상에서 실시간으로 오디오 핑거프린트 데이터베이스를 추가하는 작업을 나타낸 흐름도
도 8은 온라인 상에서 오디오 핑거프린트들을 삭제하는 작업을 나타낸 흐름도
도 9는 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 장치를 나타낸 구조도
도 10은 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 장치를 나타낸 구조도
도 11은 온라인 상에서 오디오 핑거프린트들을 삭제하는 장치를 나타낸 구조도
도 12는 온라인 상에서 실시간으로 업데이트를 지원하는 대규모 오디오 핑거프린트 데이터베이스를 나타낸 구조도
도 13은 온라인 상에서 실시간으로 오디오 핑거프린트를 추가하는 방법을 나타낸 구조도
도 14는 온라인 상에서 실시간으로 오디오 핑거프린트를 삭제하는 방법을 나타낸 구조도
본 발명에 포함된 용어들: "계속적 저장(continuous storage)"이라는 용어는, 기존의 파일 정보 이후에 새롭게 추가된 파일 컨텐츠 정보를 계속적으로 보충하고 추가하는 것을 의미하며, 이는 일련번호를 통해 차기 절차를 계속적으로 추가하는 단계 또는 앞서 저장된 파일 유형의 동일한 파일 주소를 가지는 파일을 병렬 저장하는 단계와 유사하며, 순차적으로 병렬 저장하는 것을 의미한다. "딜레이-삭제(delay-deleting)"라는 용어는, 일정 시간 간격만큼 지연시킨 후에 삭제 대상 파일을 삭제하는 것을 의미하며, 삭제 전에 상기 삭제 대상 파일이 정상적으로 액세싱 되거나 브라우징될 수 있고, 상기 파일은 실행중인 액세싱이 완료된 후 삭제되며; 본 발명의 바람직한 삭제 솔루션은, 지연 후, 현재 스레드(thread)의 정상적인 사용에 지장없이, 백그라운드 스레드(background thread)를 통해 동시 삭제를 수행하는 것이다.
실시예 1:
보편성을 저하시키지 않고, 도 2에 도시된 바와 같이, 종래 기술에 따라 불편하게 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 기술적인 문제를 해결하기 위해, 본 발명은 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 방법을 제공하며, 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 방법은,
동일한 키 값(key value)을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 단계 (S1000);
상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계, 상기 인덱스 리스트 내 상기 키 값 각각을 포인터 방식으로 상기 키 값 각각에 대응되는 오디오 핑거프린트들에 포인팅(pointing)시키는 단계 (S2000); 및
상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 계속적으로 저장하는 단계 (S3000)를 포함한다.
한편 종래의 기술에 따르면, 노래는 복수의 오디오 핑거프린트들을 가질 수 있으며, 상기 오디오 핑거프린트 각각은 하나의 키 값을 가질 수 있고, 동일한 키 값은 복수의 상이한 노래들에서 반복적으로 등장할 것이다. 그러므로, 복수의 상이한 노래들에는 동일한 값을 가지는 복수의 오디오 핑거프린트들이 존재하며, 이에 따라, 도 3에 도시된 바와 같이, 본 발명의 단계 S1000, 즉 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 단계가 수행되어야 한다.
위치해야 할 업데이트 대상 오디오 핑거프린트를 신속하게 검색하기 위해서, 본 발명의 단계 S2000은 상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계, 상기 인덱스 리스트 내 상기 키 값 각각을 포인터 방식으로 상기 키 값 각각에 대응되는 오디오 핑거프린트들에 포인팅시키는 단계를 포함하며; 단계 S3000은 상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 계속적으로 저장하는 단계(S3000)를 포함한다.
상기 인덱스 리스트에서, 상기 키 값은 상기 키 값 각각에 대응되는 복수의 오디오 핑거프린트들을 순차적으로 가리키도록"key1, key2, …"와 같은 형태로 어레이에 순차적으로 저장하며; 이후 value1 및 value4가 동일한 키 값, 즉 key1 값을 가지는 경우 value1 및 value4가 key1와 함께 저장되는 것과 마찬가지로, 동일한 키 값을 가지는 오디오 핑거프린트들(value)은 대응되는 키 값과 함께 계속적으로 저장된다.
실시예 2:
바람직하게는, 본 발명의 상술한 인덱스 리스트는 순차적으로 배열되는 복수의 어레이들을 수립함으로써 구현될 수 있다. 더 나아가, 도 4에 도시된 바와 같이, 단계 S1000는,
상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 동일한 어레이로 분류하는 단계(S1100)를 더 포함한다.
예를 들어, 도 5에 도시된 바와 같이, key1, value1 및 value4는 제1 어레이로 분류되고, 나머지는 순차적으로 배열된다.
나아가, 도 6에 도시된 바와 같이, 단계 S2000에서, 상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계는,
상기 인덱스 리스트에 상기 키 값들과 동일한 숫자를 가지는 어레이를 포함시키는 단계(S2100)를 더 포함한다.
도 5에 도시된 바와 같이, 키 값과 동일한 숫자를 가지는 대응되는 어레이들이 세로(longitudinal) 컬럼에 존재하며, 상이한 어레이들 내 키 값은 복수의 오디오 핑거프린트들(value)에 대응될 수 있다.
실시예 3;
바람직하게는, 시기가 지난 오디오 파일을 제 시간에 제거하기 위해, 도 11에 도시된 바와 같이, 본 발명은,
오디오 핑거프린트들을 온라인 상에서 삭제하는 단계(S5000)를 더 포함한다.
나아가, 도 8에 도시된 바와 같이, 단계 S5000은
모든 삭제 대상 오디오 파일들의 오디오 핑거프린트들에 따라, 모든 삭제 대상 오디오 핑거프린트들을 요약하는 단계(S5100);
상기 키 값들에 따라 삭제 대상 오디오 핑거프린트들을 그룹핑하여 각 그룹 내 상기 삭제 대상 오디오 핑거프린트들이 동일한 대응 키 값을 갖도록 하고, 그룹을 유닛으로서 위치시키고 삭제하는 단계(S5200);
인덱스 리스트에서 상기 대응 키 값에 기초하여 동일한 키 값을 검색하여 삭제 대상 오디오 핑거프린트들을 위치시키는 단계(S5300);
추가하는 작업과 유사한, 삭제 대상 오디오 핑거프린트들을 복사하는 단계로서, 모든 이어지는 삭제 작업들을 텍스트 형식으로 구현하여 온라인 액세싱에 지장 없이 복사하는 단계(S5400); 및
상기 그룹들 내 동일한 오디오 핑거프린트들인, 상기 삭제 대상 오디오 핑거프린트들 내, 복사된 상기 오디오 핑거프린트들을 삭제하여 새로운 오디오 핑거프린트들을 획득하는 단계, 삭제하는 작업을 완료하며, 오직 포인터들의 위치를 순차적으로 변경할 것을 요구하는 단계(S5500)를 더 포함한다.
상기 인덱스 리스트 내 포인터들이 상기 삭제 대상 오디오 핑거프린트들의 키 값들을 포인팅하도록 함으로써 상기 새로운 오디오 핑거프린트들에 포인팅시키는 단계(S5600)로서, 상기 삭제 대상 오디오 핑거프린트들은 대응되는 키 값들에 따라 액세스된 오디오 핑거프린트들에 포함되지 않는다.
삭제 대상 오디오 핑거프린트들이 현재 액세스 중인 프로세스에 지장을 주지 않는 경우, 본 발명은 삭제 대상 오디오 핑거프린트들을 딜레이-삭제할 것인지를 선택할 수 있다(S5700).
바람직하게는, 단계 S5700에서, 서버의 부하를 완화시키는 동안 공간을 제공하는 서버가 동작 중이지 않은 경우, 삭제 작업을 수행하기 위해 다른 백그라운드 스레드가 초기화될 수 있다.
실시예 4:
본 발명의 기술 분야의 통상의 기술자가 더 편리하게 본 기술적 솔루션을 적용하기 위해, 도 9에 도시된 바와 같이, 본 발명은 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 장치를 더 제공하며,
온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 장치는, 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 대응 관계 수립부(100); 상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 인덱스 리스트 수립부로서, 상기 인덱스 리스트 내 상기 키 값 각각은 포인터 방식으로 상기 키 값 각각에 대응되는 오디오 핑거프린트들에 포인팅(pointing)되는, 인덱스 리스트 수립부(200); 및 상기 동일한 키 값을 가지는 오디오 핑거프린트들을 계속적으로 저장하는 핑거프린트 저장부 (300)를 포함한다.
실시예 5:
나아가, 본 발명의 기술적 솔루션을 더 쉽게 구현하기 위해, 도 10에 도시된 바와 같이, 본 발명의 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스 구축 장치는 오디오 핑거프린트 온라인 삭제부(500)를 더 포함한다.
나아가, 도 11에 도시된 바와 같이, 오디오 핑거프린트 온라인 삭제부(500)는 대응되는 키 값들에 기초하여, 각 그룹 내 동일한 대응 키 값을 가지는 삭제 대상 오디오 핑거프린트들로 삭제 대상 오디오 핑거프린트들을 그룹핑하는 그룹핑부(510); 인덱스 리스트에서, 대응되는 키 값으로서 동일한 대응 키 값을 검색하여 상기 삭제 대상 오디오 핑거프린트들을 위치시키는 검색부(520); 상기 삭제 대상 오디오 핑거프린트들을 복사하는 복사부(530); 상기 그룹들 내 동일한 오디오 핑거프린트들인, 삭제 대상 오디오 핑거프린트들 내, 복사된 상기 오디오 핑거프린트들을 삭제하여 새로운 오디오 핑거프린트들을 획득하도록 하는 삭제부(540); 인덱스 리스트 내 포인터가 삭제 대상 오디오 핑거프린트들의 키 값을 포인팅하도록 하는 포인팅부(550); 및 삭제 대상 오디오 핑거프린트들을 딜레이-삭제하는 딜레이-삭제부(560)를 포함한다.
상술한 기술적 솔루션에 따라, 구체적인 실시예는 아래와 같이 구현된다.
(1) 모든 오디오 데이터의 오디오 핑거프린트 데이터를 이용하여 세계적인 대규모 오디오 핑거프린트 데이터베이스를 구축하고, 키 값들에 따라 분류하며, 하드디스크에 저장하여 키 값 각각이, 특정 규칙에 따른 구체화된 카탈로그에 저장된 하나의 파일에 대응되도록 하며; 구체화된 구조도는 도 12에 도시된다;
(2) 메모리에 어레이를 구축하고, 상기 어레이의 서브스크립트(subscript)를 유지하면 키 리스트로서 저장하여 키 값과 부합하도록 하며, 널(null) 포인터로서 어레이의 엘리먼트를 초기화하며, 이후 각 키의 파일을 계속적인 부분 메모리에 각각 업로드하고, 값을 저장하며, 상기 어레이 내 서브스크립트 위치에 대응되는 데이터를 업데이트하여 포인터가 대응되는 값들을 포인팅하도록 한다;
(3) 검색에 있어서, 먼저 키 값에 따라 키 리스트의 값들을 찾으며, 상기 값들의 조건을 만족하는 데이터를 필터링한다.
도 13에 도시된 바와 같이, 온라인 상에서 노래 핑거프린트들이 추가되어야 하는 경우, 노래 핑거프린트들(n개의 페어(key, value)로 구성된다)은 추가되고, 본 발명의 실시예들이 아래와 같이 구현된다.
그룹핑하는 단계: 키 값들에 기초하여 노래 핑거프린트들을 그룹핑하고, 그룹핑된 그룹을 유닛으로 취급하여 삽입 방식으로 동일한 키 값을 가지는 노래 핑거프린트들을 추가한다;
위치시키는 단계: 각 그룹의 키 값에 따라, 인덱스 리스트 내 업데이트 대상 오디오 핑거프린트들(values)을 검색하고, 기존-값들(values-old)로서 저장하며; 인덱스 리스트 내에, 온라인 어플리케이션 내 오디오 핑거프린트의 모든 키 값들 및 모든 오디오 핑거프린트들과 모든 키 값들 중 대응되는 키 값들 사이의 대응 관계가 포함되며, 상기 대응 관계는 바람직하게는 포인터 방식으로실현된다.
복사하고 삽입하는 단계: 컨텐츠를 기존-값들로 복사하고, 기존-값들을 가지는 키 그룹 내 모든 값들을 결합하며, 키 리스트 내 키 위치가 신규-값들을 포인팅하도록 신규-값들(values-new)을 재구축한다.
포인터를 오프셋하는 단계: 키 리스트 내 키 위치의 포인터들이 신규-값들을 포인팅하도록 한다;
대체함과 동시에 오래된 데이터를 삭제하는 단계: 기존-값들의 포인터들이 사용되는 것을 피하기 위해, 기존-값들의 포인터들을 큐(queue)에 추가하고, 백그라운드 스레드(background thread)를 통해 기존-값들을 딜레이-삭제한다.
동시에 파일들을 업데이트하는 단계: 신규-값들로서 키에 대응되는 하드디스크 내 파일의 컨텐츠를 동시에 업데이트한다.
주목해야 할 단계들은: 포인터를 삭제하는 단계 및 대체함과 동시에 오래된 데이터를 삭제하는 단계로서, 이는 듀얼-스레디드(dual-threaded) 병렬 작업이며 시간순으로 발생하는 것은 아니다.
도 14에 따르면, 온라인 상에서 노래 핑거프린트들을 삭제하는 단계가 수행되어야 하고 노래 핑거프린트들(n개의 페어(키, 값)로 구성되며, 이때 n의 단위는 보통 몇 천이다)이 삭제되는 경우, 종래 기술에 따른 방법에 의하면, 온라인 액세싱은 지장을 받고, 삭제 작업은 지나치게 번거로우며, 불필요한 작업이 반복되고; 본 발명의 개선된 실시예는 아래와 같이 구현된다:
그룹핑하는 단계: 삭제 대상 오디오 핑거프린트 리스트에 따라 삭제 대상 오디오 핑거프린트들에 대한 통계를 내고, 키 값들에 기초하여 삭제 대상 오디오 핑거프린트들을 그룹핑한다;
위치시키는 단계: 각 그룹의 키 값에 따라, 인덱스 리스트(키 리스트) 내 업데이트 대상 값들을 검색하고, 기존-값들로서 저장한다;
복사하고 삭제하는 단계: 기존-값들 내 컨텐츠를 복사하고, 검색하며 값들 내 타겟 값을 삭제하며, 남아있는 데이터를 신규-값들로 재구성한다;
포인터를 오프셋하는 단계: 키 리스트 내 신규-키 위치들의 포인터들이 신규-값들을 포인팅하도록 한다;
대체함과 동시에 오래된 데이터를 삭제하는 단계: 기존-값들의 포인터들이 사용되는 것을 피하기 위해, 기존-값들의 포인터들을 큐(queue)에 추가하고, 백그라운드 스레드를 통해 기존 값들을 딜레이-삭제한다;
동시에 파일들을 업데이트하는 단계: 신규-값들인 키에 대응되는 하드디스크 내 파일의 컨텐츠를 동시에 업데이트한다.
상술한 설명은 오직 본 발명의 바람직한 실시예를 나타내며; 주목해야 할 것은: 본 기술 분야의 통상의 기술자들이, 본 발명의 기술적인 원리들로부터 벗어나지 않는 몇몇 변경 및 변형들이 수행될 수 있고, 그러한 변경 및 변형들 또한 본 발명의 범위 내로 여겨질 것이라는 점이다.
100: 대응 관계 수립부
200: 인덱스 리스트 수립부
300: 핑거프린트 저장부
500: 오디오 핑거프린트 온라인 삭제부
510: 그룹핑부
520: 검색부
530: 복사부
540: 삭제부
550: 포인팅부
560: 딜레이-삭제부

Claims (4)

  1. 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스의 구축 방법에 있어서,
    동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 단계;
    상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계, 상기 인덱스 리스트 내 상기 키 값 각각을 포인터 방식으로 상기 키 값 각각에 대응되는 오디오 핑거프린트들에 포인팅(pointing)시키는 단계; 및
    상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 계속적으로 저장하는 단계를 포함하며,
    상기 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 단계는, 상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 동일한 어레이로 분류하는 단계를 포함하며,
    상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 단계는, 상기 인덱스 리스트에 상기 키 값들과 동일한 숫자를 가지는 어레이를 포함시키는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법.
  2. 청구항 1에 있어서,
    오디오 핑거프린트들을 온라인 상에서 삭제하는 단계를 더 포함하며,
    상기 삭제하는 단계는,
    상기 키 값들에 따라 삭제 대상 오디오 핑거프린트들을 그룹핑하여 각 그룹 내 상기 삭제 대상 오디오 핑거프린트들이 동일한 대응 키 값을 갖도록 하는 단계;
    상기 인덱스 리스트에서 상기 대응 키 값과 동일한 키 값을 검색하여 상기 삭제 대상 오디오 핑거프린트들을 위치시키는 단계;
    상기 삭제 대상 오디오 핑거프린트들을 복사하는 단계;
    상기 그룹들 내 동일한 오디오 핑거프린트들인, 상기 삭제 대상 오디오 핑거프린트들 내, 복사된 상기 오디오 핑거프린트들을 삭제하여 새로운 오디오 핑거프린트들을 획득하는 단계;
    상기 인덱스 리스트 내 포인터들이 상기 삭제 대상 오디오 핑거프린트들의 키 값들을 포인팅하도록 함으로써 상기 새로운 오디오 핑거프린트들에 포인팅시키는 단계; 및
    상기 삭제 대상 오디오 핑거프린트들을 딜레이-삭제(delay-deleting)하는 단계를 포함하는, 오디오 핑거프린트 데이터베이스 구축 방법.
  3. 청구항 2에 있어서,
    상기 딜레이-삭제하는 단계는, 백그라운드 스레드(background thread)에 의해 실현되는, 오디오 핑거프린트 데이터베이스 구축 방법.
  4. 온라인 상에서 실시간으로 업데이트되는 오디오 핑거프린트 데이터베이스의 구축 장치에 있어서,
    동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 대응 관계 수립부;
    상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트를 수립하는 인덱스 리스트 수립부로서, 상기 인덱스 리스트 내 상기 키 값 각각은 포인터 방식으로 상기 키 값 각각에 대응되는 오디오 핑거프린트들에 포인팅(pointing)되는, 인덱스 리스트 수립부; 및
    상기 동일한 키 값을 가지는 오디오 핑거프린트들을 계속적으로 저장하는 핑거프린트 저장부를 포함하며,
    상기 동일한 키 값을 가지는 오디오 핑거프린트들과 상기 키 값의 대응 관계를 수립하는 상기 대응 관계 수립부는, 상기 동일한 키 값을 가지는 상기 오디오 핑거프린트들을 동일한 어레이로 분류하는 분류부를 포함하며,
    상기 키 값 및 상기 키 값 각각에 대응되는 오디오 핑거프린트들을 포함하는 인덱스 리스트 수립부는, 상기 인덱스 리스트에 상기 키 값들과 동일한 숫자를 가지는 어레이를 포함시키는 어레이 설정부를 포함하는, 오디오 핑거프린트 데이터베이스 구축 장치.
KR1020160004208A 2015-02-13 2016-01-13 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치 KR101740271B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510079627.5A CN104679847B (zh) 2015-02-13 2015-02-13 一种构建在线实时更新海量音频指纹库的方法和设备
CN201510079627.5 2015-02-13

Publications (2)

Publication Number Publication Date
KR20160100226A KR20160100226A (ko) 2016-08-23
KR101740271B1 true KR101740271B1 (ko) 2017-05-26

Family

ID=53314889

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020150162353A KR20160100211A (ko) 2015-02-13 2015-11-19 대용량 오디오 핑거프린트 데이터베이스의 온라인 실시간 업데이팅을 구성하기 위한 방법 및 장치
KR1020150170033A KR102431806B1 (ko) 2015-02-13 2015-12-01 대량 오디오 지문 데이터베이스의 온라인 실시간 업데이트를 구축하는 방법과 장치
KR1020150181165A KR20160100219A (ko) 2015-02-13 2015-12-17 대규모 오디오 지문인식 데이터베이스의 온라인 실시간 업데이트를 구성하기 위한 방법 및 디바이스
KR1020160004208A KR101740271B1 (ko) 2015-02-13 2016-01-13 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020150162353A KR20160100211A (ko) 2015-02-13 2015-11-19 대용량 오디오 핑거프린트 데이터베이스의 온라인 실시간 업데이팅을 구성하기 위한 방법 및 장치
KR1020150170033A KR102431806B1 (ko) 2015-02-13 2015-12-01 대량 오디오 지문 데이터베이스의 온라인 실시간 업데이트를 구축하는 방법과 장치
KR1020150181165A KR20160100219A (ko) 2015-02-13 2015-12-17 대규모 오디오 지문인식 데이터베이스의 온라인 실시간 업데이트를 구성하기 위한 방법 및 디바이스

Country Status (3)

Country Link
KR (4) KR20160100211A (ko)
CN (1) CN104679847B (ko)
DE (1) DE102016001035A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11302101B2 (en) 2018-09-18 2022-04-12 Samsung Electronics Co., Ltd. Electronic apparatus for constructing a fingerprint database, control method thereof and electronic system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108334514B (zh) * 2017-01-20 2020-11-03 北京京东尚科信息技术有限公司 数据的索引方法以及装置
CN107066861B (zh) * 2017-03-20 2020-01-14 Oppo广东移动通信有限公司 一种指纹事件的处理方法及移动终端
CN106970813A (zh) * 2017-03-31 2017-07-21 广东欧珀移动通信有限公司 软件升级控制方法、装置及电子设备
CN107731220B (zh) * 2017-10-18 2019-01-22 北京达佳互联信息技术有限公司 音频识别方法、装置和服务器
CN109597024B (zh) * 2018-11-19 2020-05-12 南京财经大学 基于异步传感数据的室内区域定位方法及***
CN109657093A (zh) * 2018-11-27 2019-04-19 腾讯音乐娱乐科技(深圳)有限公司 音频检索方法、装置及存储介质
CN109726307A (zh) * 2018-12-26 2019-05-07 合肥凯捷技术有限公司 一种跨网互联音频大数据存储检索方法
CN109871463B (zh) * 2019-03-06 2024-04-09 腾讯音乐娱乐科技(深圳)有限公司 音频处理方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289518A (zh) 2011-09-13 2011-12-21 盛乐信息技术(上海)有限公司 音频指纹检索库的更新方法及***
CN103995890A (zh) 2014-05-30 2014-08-20 杭州智屏软件有限公司 一种实时音频指纹检索库数据更新和检索方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101777075B (zh) * 2010-02-05 2015-02-11 上海全土豆网络科技有限公司 并行音频指纹检索方法
CN103870516B (zh) * 2012-12-18 2019-10-25 北京三星通信技术研究有限公司 检索图像的方法、实时绘画提示方法及其装置
CN104123300B (zh) * 2013-04-26 2017-10-13 上海云人信息科技有限公司 数据分布式存储***及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102289518A (zh) 2011-09-13 2011-12-21 盛乐信息技术(上海)有限公司 音频指纹检索库的更新方法及***
CN103995890A (zh) 2014-05-30 2014-08-20 杭州智屏软件有限公司 一种实时音频指纹检索库数据更新和检索方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11302101B2 (en) 2018-09-18 2022-04-12 Samsung Electronics Co., Ltd. Electronic apparatus for constructing a fingerprint database, control method thereof and electronic system

Also Published As

Publication number Publication date
KR20160100216A (ko) 2016-08-23
KR20160100219A (ko) 2016-08-23
KR20160100211A (ko) 2016-08-23
KR102431806B1 (ko) 2022-08-12
DE102016001035A1 (de) 2016-08-18
CN104679847A (zh) 2015-06-03
KR20160100226A (ko) 2016-08-23
CN104679847B (zh) 2019-03-15

Similar Documents

Publication Publication Date Title
KR101740271B1 (ko) 온라인 상에서 실시간으로 업데이트되는 대규모 오디오 핑거프린트 데이터베이스의 구축 방법 및 장치
US11907244B2 (en) Modifying field definitions to include post-processing instructions
CN100458779C (zh) 扩展索引的方法
CN110362727B (zh) 用于搜索***的第三方搜索应用
US20200183959A1 (en) Systems and methods for generating and using aggregated search indices and non-aggregated value storage
US10108649B2 (en) Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps
US6546394B1 (en) Database system having logical row identifiers
US8527556B2 (en) Systems and methods to update a content store associated with a search index
CN107103032B (zh) 一种分布式环境下避免全局排序的海量数据分页查询方法
CN108255958A (zh) 数据查询方法、装置和存储介质
CN110109910A (zh) 数据处理方法及***、电子设备和计算机可读存储介质
JP6365195B2 (ja) 命令履歴分析プログラム、命令履歴分析装置、および、命令履歴分析方法
CN105279213A (zh) 一种日志数据库检索装置及检索方法
CN106649412B (zh) 一种数据处理方法和设备
CN103186622B (zh) 一种全文检索***中索引信息的更新方法以及装置
CN110321383A (zh) 大数据平台数据同步方法、装置、计算机设备及存储介质
CN106970958A (zh) 一种流文件的查询与存储方法和装置
CN101136027A (zh) 用于数据库索引、搜索和数据检索的***和方法
CN107209768A (zh) 用于数据集的可扩展排序的方法和设备
CN107330024A (zh) 标签***数据的存储方法和装置
US20170270149A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
CN108038253B (zh) 一种日志查询的处理方法及装置
CN114281855A (zh) 数据请求方法、装置、计算机设备、存储介质和程序产品
CN104866508B (zh) 在云环境下管理文件的方法与装置
CN111666302A (zh) 用户排名的查询方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant