ANALYSE DE SIGNAL AUDIO-NUMÉRIQUE

Signaler
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/49203-analyse-de-signal-audio-numerique

Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
c'est limpide, merci
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
A l'époque où j'ai développé cette technique, je n'utilisais que VBA ; or dans ce langage, les handles des contrôles ne sont pas exposés comme en VB, ce qui empêche l'utilisation d'un très grand nombre d'API, comme celles sur la gestion de bitmaps. J'ai donc essayé d'autres méthodes, comme la fonction SetPixel, qui s'est révélée très lente.

L'importation d'image à partir d'un fichier bitmap me paraissant la seule solution pratique, j'ai, comme tu l'as évoqué, comparé les approches "mémoire" et "disque" de la gestion d'une image Windows bitmap. J'ai alors constaté que dessiner dans un fichier, en mémoire virtuelle, était plus rapide et moins gourmand en ressources que de travailler en mémoire avec des tableaux à deux dimensions. Cette bonne performance est due au fait, je pense, que les accès au disque se font seulement à l'ouverture et à la fermeture du fichier et que, dans l'intervalle, le système écrit dans le cache. Ceci est vrai à la condition que le fichier soit créé à sa taille définitive, sinon le système est susceptible d'accéder au disque en cours de travail pour ajuster la taille du fichier. Il faut donc utiliser un format Windows Bitmap non compressé, qui est à ma connaissance le seul format de fichier d'image dont on peut prévoir la taille exacte sans connaître le contenu. Ces conditions étant remplies, le fichier peut être utilisé comme mémoire vituelle (ce qui, au passage, allège considérablement les ressources de l'application).

Aujourd'hui, bien que je ne développe plus que rarement en VBA, je continue, par habitude, à utiliser cette technique.
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
C'est bien ce que je pensais avoir compris. D'ou une nouvelle question :
Niveau performance le temps d'acces au fichier via le HDD doit être plus long qu'a la RAM, pourquoi ce choix ?
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour ADN56

Merci beaucoup pour tes commentaires, c'est sympa.

Pour dessiner dans un bitmap, je n'utilise pas les fonctions de dessin de VB, mais je dessine plutôt dans un fichier au format bmp 256 couleurs que je charge ensuite dans un contrôle.

Voici comment je fais. D'abord, je crée sur disque un fichier bmp vide, mais entier, c.a.d. avec ses quatre structures bmpfileheader, bmpinfoheader, palette de couleurs et bitmap data. Une fois le fichier initialisé, l'application écrit directement les pixels dans la section bitmap data du fichier. C'est possible dans le cas d'un fichier bmp, celui-ci stockant l'image sous la forme d'un tableau matriciel de pixels (raster). Une fois le dessin terminé, l'application ferme le fichier bmp avant de charger l'image dans un contrôle.

Donc, l'application écris ses pixels dans un fichier, pas à l'écran. C'est la principale différence par rapport aux fonctions de dessin de vb.

Amicalement
Afficher les 10 commentaires