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.

Documents pareils