Bonjour à tous,
J'essaie actuellement d'implémenter l'algorithme de fingerprinting audio de Philips (A Highly Robust Audio Fingerprinting System).
J'ai déjà effectué la prise d'empreintes mais c'est au niveau de la base de donnée que je coince... En effet, l'algorithme se base sur une table de lookup de 2^32 entrées, chaque entrée étant le point d'entrée d'une liste chainée.
Donc en gros c'est un tableau de taille 2^32 de liste chainées... Comment faire cela avec MATLAB ? J'ai essayé plusieurs méthodes pour le moment :
Une matrice classique (de largeur 16) n'est pas faisable :
Une matrice creuse (sparse) non plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 a = zeros(16, 2^32); ??? Error using ==> zeros Maximum variable size allowed by the program is exceeded.
Peut-être avec une table de hachage via la classe java.util.Hashtable mais je ne vois vas trop comment car dans ce cas j'écrase les anciennes valeurs si j'ajoute de nouvelles données aux index en comportant déjà...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 a = sparse(16, 2^32); ??? Error using ==> sparse Sparse matrix sizes must be non-negative integers less than MAXSIZE as defined by COMPUTER. Use HELP COMPUTER for more details.
Donc je suis un peu perdu en ce moment...
Un tout grand merci à vous
Partager