samedi 30 janvier 2010

Wifi et audio en streaming

Ce petit article n'a pas la prétention de couvrir tous les aspects d'un sujet aussi largen mais résume l'essentiel de ce qui est utile à l'audiophile à la recherche d'un mécanisme d'écoute sans fil.

De multiples sources d'ondes parcourent notre environnement à des fréquences souvent très élevées et par conséquent non audible. Parmi celles-ci les réseaux informatiques sans fil sont cantonnés principalement sur deux bandes de fréquences différentes selon leur débit : 2400 à 2485 GHz et 5725 à 5850 GHz.


Pour en savoir plus sur wifi, je vous conseille l'excellent article de commentcamarche.net.

Portée des ondes en wifi en fonction des types de réseaux :

Afin de prévoir le déploiement de votre réseau wifi audiophile, il faut prendre en compte les contraintes de distance théoriques en intérieur associées aux normes wifi, à savoir :

  • 802.11a : 54Mb/s maximum à 10 mètres
  • 802.11b:  11Mb/s maximum à 50 mètres
  • 802.11g:  54Mb/s maximum à 27 mètres
  • 802.11n: 300Mb/s (100Mb/s effectif) maximum à 100 mètres

(source apple)

Naturellement ces valeurs tombent rapidement lorsqu'il est nécessaire aux ondes de traverser des matériaux denses ou fortement métallisés...

Réglage du canal de réception :

Par exemple, dans le standard 802.11b, la bande de fréquence a été découpée en 14 canaux séparés de 5MHz, dont seuls les canaux 10 à 13 sont officiellement utilisables en France. Si deux points d'accès utilisant les mêmes canaux ont des zones d'émission qui se recoupent, des distorsions du signal risquent de perturber la transmission. Pour éviter toute interférence il est recommandé d'organiser la répartition des points d'accès et l'utilisation des canaux de telle manière à ne pas avoir deux points d'accès utilisant les mêmes canaux proches l'un de l'autre. Il en va de même pour 802.11g et 802.11n. Naturellement comme vous ne pouvez maitriser les bornes de vos voisins l'astuce consiste à faire une cartographie des bornes à proximité et choisir des canaux d'exploitations fixes différents.

Pour cela il est nécessaire d'effectuer une petite étude à l'aide d'un programme de zonage. Positionnez votre borne à l'endroit où vous souhaitez la laisser en permanence, puis déplacez vous avec votre ordinateur à l'endroit où va se trouver le récepteur de flux audio (borne AE par exemple).

Cartographier son réseau wifi :

Dans un premier temps, téléchargez et installez le logiciel Vistumbler sur votre ordinateur portable. Ce logiciel gratuit fonctionne correctement sur Windows Vista et Windows 7 également. Conservez toutes les options par défaut du logiciel sans chercher à rentrer dans les configurations avancées.

Une fois celui-ci installé, vous devriez avoir une icône supplémentaire sur votre bureau de ce type :


A chaque lancement le logiciel cherche ses mises à jour. Ne vous inquiétez pas car il est assez lent à s'ouvrir, soyez patient !

Une fois le logiciel ouvert, l'affichage se fait en anlgais, allez dans le menu Settings et sélectionnez l'option Set Language :


Sélectionnez French dans le menu déroulant, validez le bouton OK :


puis refermez le logiciel pour que vos changements soient pris en compte. Relancez VisTumbler :


Positionnez vous au plus près de l'endroit où votre borne de réception audio sera positionnée, puis cliquez maintenant sur  Lancer Scan pour démarrer l'analyse :


Le logiciel cherche tous les points d'accès à portée et va afficher leur débit, canal et le pourcentage de réception :


Identifiez votre borne dans la liste de la colonne SSID. Repérez le numéro du canal utilisé. S'il est utilisé par d'autres bornes (celles de vos voisins notamment), utilisez le logiciel d'administration de votre borne pour  changer de canal. La majorité des bornes par défaut sont réglées sur le canal 11 ou en Automatique.

Cliquez sur la ligne de votre borne, puis cliquez sur Graphique2 et observez dans le temps le niveau du signal. Je vous conseille de laisser le logiciel en action pendant 10 bonnes minutes pour avoir une estimation statistique correcte et bien voir si la courbe est à peu près rectiligne ou que des grosses fluctuations se produisent :


Sur l'exemple précédent, on distingue plusieurs informations. 40 bornes sont diffusées sur le réseau à proximité (!), 15 bornes sont activées et transmettent des signaux captables, c'est déjà beaucoup ! Notre borne montre un signal moyen de l'ordre de 60-65%. C'est à dire que l'on est loin d'avoir une bande passante effective de 54Mb/s mais plutôt d'environ 35Mb/s.


Quantifier la bande passante :

Ce paramètre pris en compte, penchons nous sur le débit nécessaire pour un flux audio stéréo modulé à 44.1KHz en 16 bits, soit 1441Kb/s = 1,4Mb/s. Naturellement, ce chiffre augmente du fait des éléments du protocole de transmission et de contrôle de flux.

Les protocoles de compression de la musique sans perte permettent d'optimiser le stockage de l'ordre de 40-50% selon l'algorithmique utilisée. Dans le cas par exemple d'un flux audio ALAC (Apple Lossless Audio Codec), l'économie en terme de débit permet d'envisager une bande passante utile maximale de l'ordre de 0,8Mb/s.

Afin de vérifier ces éléments, quelques mesures ont été effectuées à l'aide de wireshark. Un morceau choisi pour son taux de compression de 40% affiché a été joué 5 fois de suite et une capture du flux effectué pendant les 2 premières minutes après repérage de la commande RAOP de démarrage.
En premier lieu on observe que l'ensemble de la communication est cryptée au niveau des données RTP et par conséquent génère un surplus de paquets par rapport à une transmission brute. Il a été impossible de déterminer si des paquets n'avaient pas été reçus du fait qu'il s'agit d'une transmission sur UDP sans confirmation de réception et du fait qu'il n'existe pas de logiciel client simulant une borne Apple Express.
En second lieu, après calcul des octets transmis on obtient par exemple ces éléments :

Type Paquets/s Bits/s Kbits/s
UDP/RTP 131,0 1135810,4 1109,2
TCP/RAOP 0,3 417,5 0,4

On constate qu'un ficher compressé à 40% montre un débit effectif une fois encapsulé sur RTP encrypté AES de l'ordre de la taille initiale du fichier, soit 1,1Mb/s. Le flux de contrôle consomme quant à lui une faible bande passante qui indique à coup sûr vu le nombre de paquets transmis (environ 15 par mn) qu'aucun contrôle de flux effectif n'est en place.

Transmettre la musique sans fil :

Contrairement aux idées reçues, les données utiles sont envoyées en utilisant la grande majorité du temps le protocole RTP sur UDP qui n'est pas sécurisé. Les transmissions peuvent donc être affectées par des pertes de données qui se traduisent par des conséquences diverses audibles ou  non. Par exemple la borne Apple gère des flux RAOP pour la signalisation sécurisés sur TCP et RTP/AVP sur UDP sans sécurisation de transfert, il en va de même pour Real Audio L'émetteur escompte une vitesse et une justesse de transmission sans faille.

En reproduction de flux audio comme en vidéo, d'autres éléments complémentaires rentrent en compte. Le délai de codage et la latence due à la propagation des données sur le réseau. Pour gérer les fluctuations le récepteur doit intégrer un mécanisme de tampon local. Le tampon permet une meilleur maitrise de la latence génératrice de gigue (jitter).

L'exemple suivant montre les fluctuations pouvant être observé sur un réseau wifi en matière de retard et d'acquittement juste au niveau de la couche de transport IP :


On observe que le temps d'acheminement moyen de 5ms monte par moment à plus de 200ms. Pour permettre une gestion efficace de ces aléas il convient de régler si possible sur le récepteur un tampon de taille suffisante pour stocker environ 250ms d'échantillons en retard et limiter les dégâts.

Notez que les temps de latence acceptables en transmission sont généralement :

- entre 0 et 150ms : pour une conversation normale
- entre 150 et 300ms : pour la voix mais pas pour la musique
- entre 300 et 700ms : applications audios temps réel impossibles
- au delà : la communication n'est plus envisageable même à bas débit

Le retard observé ci-dessus est à priori complètement dû à la charge réseau instantanée à un moment T, sans rien faire les périphériques dialoguent entre eux... Il conviendra donc de tester cette même information lors de l'utilisation normale de la télécommande wifi par exemple pour contrôler si le fait de gérer l'émetteur ne génère pas de retard excessif qui pourrait se traduire par une dégradation audible.

Au niveau du récepteur, la variation du délai de transmission provoque de la gigue, une file d'attente est en principe gérée à cet effet. Cependant, si la tolérance de gestion est dépassée, il y a perte d'infomation.
A titre d'information, on considère en téléphonie numérique que la tolérance est de +- 125µs. En Audio la tolérance est bien moindre. Le tampon intercalé avant la reproduction du signal en réception permet d'éliminer théoriquement la gigue mais accroit le délai de reproduction ou de transmission s'il s'agit d'un élément intermédiaire.
Les pertes se traduisent souvent par des blancs plus ou moins audibles sous forme de silence ou de plocs.

A titre d'exemple le protocole Real Audio utilise un tampon de 240ms divisé en 12 blocs de 20ms.

Conclusion :

La transmission de flux audio est complexe et nécessite la mise en place de mécanismes de contrôle de flux élaborés pour faire face aux codages/décodages, latence de traitement, retard de paquets et plus généralement gigue introduite par chaque composant de la chaine. De plus, la transmission sans fil introduit un médium de transmission imparfait dont la fiabilité n'est pas à la hauteur des protocoles de transmission existant.
Il en va de même par exemple en transmission wifi téléphonique où le protocole n'est pas du tout prévu à l'origine pour un déplacement du téléphone de borne en borne. Les ingénieurs doivent donc faire preuve d'une grande ingéniosité dans la mise au point des émetteurs et récepteurs pour gérer un flux audio en streaming et assurer une qualité quasi parfaite.

Cet article vous aura j'espère un peu éclairé sur les mécanismes de base entrant en jeu.

Veillez donc à isoler votre borne sur un canal séparé de ceux de vos voisins, évitez au maximum les couches logicielles bavardes sur votre réseau sans fil comme l'explorateur d'ordinateur ou le partage de fichiers et d'imprimante, privilégiez des positions pour la borne où le niveau de réception est bon, voir excellent pour écarter les pertes de son lorsque le retard est trop important.
Enfin servez-vous d'outil très simple comme la commande ping pour tester la stabilité de réception et le retard engendré en moyenne par votre réseau wifi.

Aucun commentaire:

Enregistrer un commentaire