cbeyls a écrit :
Ok, donc en résumé: Tu calcules le hash de chaque photo une seule fois et tu le stockes quelque part. Quand une nouvelle photo est ajoutée, si tu remarques qu'une autre photo avait le même hash, tu les compares byte par byte pour vérifier qu'elles sont vraiment identiques. En n'oubliant donc pas que deux photos différentes peuvent avoir le même hash! Heureusement c'est rare donc le nombre de comparaisons byte par byte sera limité.
|
Il n'y même pas besoin de comparer tout le fichier byte à byte en fait.
J'ai fais le test en limitant la comparaison au premier kilo octet des fichiers et ça rend le même résultat.
En fait j'avais le même besoin, donc je me suis amusé à faire le programme qui cherche tous les doubons dans le fichiers images (jpg, gif, png et bmp)
En effet, la probabilité que 2 fichiers différents aient à la fois le même hash et commencent de la même façon est très faible, voire nulle.
J'ai même essayé avec des valeurs plus petites et ça passe mais le gain en temps n'est pas énorme.
J'ai pas beaucoup de photo sur mon PC mais en scannant tous mes disques, je tombe quand même sur 24000 images
dont 8000 doublons... (beaucoup de logos et d'images dans des docs en plusieurs langues)
Juste en limitant la comparaison bit à bit, je suis passé d'environ 5 minutes à moins de 2 minutes
Message édité par Bidem le 28-11-2009 à 14:41:22