Annexe - Protocole SIP - 4 - Codec et bande passante
Transcription
Annexe - Protocole SIP - 4 - Codec et bande passante
Notions de Codec et bande passante Le transport de la voix sur un réseau IP nécessite au préalable tout ou une partie des étapes suivantes : Numérisation : dans le cas où les signaux téléphoniques à transmettre sont sous forme analogique, ces derniers doivent d'abord être convertis sous forme numérique suivant le format PCM (Pulse Code Modulation) à 64 Kbps. Compression : le signal numérique PCM à 64 Kbps est compressé selon l'un des formats de codec (compression / décompression) puis inséré dans des paquets IP. La fonction de codec est le plus souvent réalisée par un DSP (Digital Signal Processor). Selon la bande passante à disposition, le signal voix peut également être transporté dans son format originel à 64 Kbps. Décompression : côté réception, les informations reçues sont décompressées .il est nécessaire pour cela d'utiliser le même codec que pour la compression- puis reconverties dans le format approprié pour le destinataire (analogique, PCM 64Kbps, etc.). L'objectif d'un codec est d'obtenir une bonne qualité de voix avec un débit et un délai de compression le plus faibles possibles. Le coût du DSP est lié à la complexité du codec utilisé. Chaque codec présente des avantages et des inconvénients. Mais pour simplifier, on peut retenir que plus un codec compresse le signal (et donc utilise moins de bande passante) moins sa qualité sera bonne. A l'inverse, moins il compresse le signal (et utilse donc plus de bande passante) plus la qualité sera bonne.Les codecs les plus souvent mis en oeuvre dans les solutions VoIP sont G.711, G.729 et G.723.1. La qualité d'un codec est mesurée de façon subjective en laboratoire par une population test de personnes. Ces dernières écoutent tout un ensemble de conversations compressées selon les différents codecs à tester et les évaluent qualitativement (voir fiche sur MOS) Le sigle codec vient de la juxtaposition des termes COder/DECoder. Un codec permet de coder un signal vocal dans un format adapté au transport à travers un réseau. Il doit bien évidemment permettre également le décodage de ce signal pour le restituer à l'autre extrémité du réseau. Le tableau ci-dessous présente les codecs les plus souvent utilisés en précisant pour chacun d'eux la fréquence d'échantillonage et la taille d'un échantillon. SPEEX 20,8 Kbps 16 KHz iLBC 13,3 Kbps 8KHz GSM 13,2 Kbps 8KHz MS-GSM 13 Kbps 8KHz SPEEX 8 Kbps 8KHz PCMU - G711u 64 Kbps 8 KHz PCMA - G711a 64 Kbps 8 KHz G726-16k 16 Kbps 8 KHz G721 32 Kbps 8 KHz LPC 2,5 Kbps 8 KHz CODEC et Bande Passante Le codec G 711 présente les caractéristiques suivantes : il échantillonne à 8000 Hz (comme le RNIS). en 1 seconde, on aura 8000 échantillons. il utilise 8 éléments binaires par échantillon. ce qui représente 8000 octets /s soit 64 kbit/s. La transmission de la voix utilisant le standard G711 nécéssite donc un débit utile de 64 kbit par seconde. Au niveau de la transmission sur le réseau VDI, transmettre un paquet de 64 kbit toutes les secondes n'est pas une bonne solution, car si l'on perd un paquet, on perd 1 seconde de parole ce qui n'est pas acceptable (ici, on travaille en temps réel, il n'est donc pas question de retransmettre un paquet perdu). L'idée est donc de transmettre des paquets de voix plus régulièrement, chaque paquet contenant 10 à 40 ms de voix (cette valeur est connue sous le terme de sampling rate). Afin d'optimiser la transmission la valeur du sampling rate retenue prend en compte le rapport : bits utiles / bits de contrôle. Un peu de calcul : si on envoie un paquet toutes les 20 ms (sampling rate), on aura 1/0,02 = 50 paquets par seconde pour chaque paquet on aura 8000/50 = 160 octets de Voice payload (données utiles) Le "sampling rate" détermine en fait le nombre de paquets envoyé en une seconde. Chaque paquet au niveau d'internet est encapsulé dans RTP/UDP/IP chaque couche nécéssitant une entête de respectivement (12 octets, 8 octets et 20 octets) soit 40 octets au total qui viennent s'ajouter à la charge utile VoIP (Voice Payload). Notons que la taille de cette entête est compréssé par RTP, elle passe alors à 2 ou 4 octets. Reprenons le cas du codec G.711 avec des paquets transportant 20 ms de codage Voix. Comme nous le montre les calculs précédents, le payload pour chaque paquet est de 160 octets auquels il faut rajouter les 40 octets de contrôle soit 160+40 = 200 KBytes soit 200x8 = 1600 bits. Pour une seconde on a 50 paquets de 20 ms soit un débit total de 1600 * 50 / 1000 = 80 Kp/s . Autre exemple : Pour G.711 à 30ms cela nous donne : Nombre de paquets : 1/0,03 soit 33 paquets Voice Payload = 8000/33 soit 242 arrondis à 242 Octets entête RTP/UDP/IP : 40 Octets Total par paquet 282 Total des 33 paquets : 282 x 33 = 9306 Octets soit 74448 bits soit 74 Kbps Tableau récapitulatif CODEC Sampling Rate Voice Payload in Bytes Packet per second Bandwidth per Conversation G.711 20 ms 160 50 80 Kbps G.711 30 ms 240 33 74 Kbps G.7291 20 ms 20 50 24 Kbps G.729A 30 ms 30 33 16 Kbps remarque : Le G729 compresse le flux pour tenir dans une bande de 8 à 32 kbit/s mais la qualité est réduite, et les signaux tels que tonalité DTMF ou fax ne passent pas forcément bien.