Codecs ToIP/VoIP et bande passante
Cet article a pour objectif de lister les trois codecs les plus fréquemment utilisés en VoIP ainsi que leurs principales caractéristiques. Cela ne signifie donc pas qu’ils sont les seuls implémentés car il en existe au contraire bon nombre sur le marché.
Pour situer un peu le sujet, un codec (pour codeur-decodeur) est en fait un mécanisme qui permet d’encoder le flux analogique de la voix en numérique et inversemment. Les appréciations de qualité des codecs seront ici relativement objectives. Cependant, un billet ultérieur permettra de voir comment mesurer cette qualité notamment à l’aide des scores MOS.
Avant toute chose, il convient de faire un bref rappel sur la consommation en bande passante des codecs :
Dans son expression de base, la bande passante consommée par un codec est appelée débit utile. C’est en effet le débit nécessaire pour transformer uniquement l’information transcrite par le codec en suite numérique (payload). En revanche, d’un point de vue plus “réseau”, il faut rajouter les entêtes des différents protocoles qui encapsulent les données générées. Un codec réalise des échantillons de voix à intervalles réguliers. Par défaut, il s’agit souvent d’une période de 1s, ce qui s’avère est bien trop long dans le cas où un paquet de données est égaré. Dans ce cas, la notion de packetization intervient. Elle permet en effet de définir la période sur laquelle l’échantillonage du flux analogique va être effectué (< 1s).
En règle générale, cette période (ou sampling) est de l’ordre de 20ms, ce qui représente alors 50 paquets par seconde. Pour chaque codec, nous verrons donc le débit utile et le débit réel à prendre en compte (la somme des entêtes RTP / UDP / IP étant de 40 octets au total)
- G711 : Il en existe deux standards. Le G711 loi µ utilisé en Amérique du Nord et au Japon, et le G711 loi a utilisé partout ailleurs. Ce codec échantillone le signal d’entrée à 8 Khz sur 8 bits, ce qui génère donc un flux de 64 Kbps en débit utile (soit 8 Ko/s). Comme vu précédemment, avec un sampling à 20 ms, un paquet contiendra alors 160 octets de données. Le débit total IP nécessaire pour le G711 est donc d’environ 80 Kbps. C’est le codec le plus utilisé dans les communications LAN, la qualité d’écoute étant très bonne.
- G729 : Il en existe plusieurs annexes, dont les plus répandues sont les annexes A et B. Ce codec définit un codage de la parole à 8 Kbits/s en débit utile. Toujours en prenant un sampling de 20 ms, un paquet contiendra donc 20 octets de données. On en déduit le débit total IP nécessaire de 24 Kbps. La qualité en G729 est inférieure à celle obtenue en G711. En revanche, ce codec offre tout de même un bon compromis entre consommation de bande passante et qualité d’écoute.
- iLBC : Ce codec est relativement léger et serait notamment utilisé par les solutions logicielles Skype et Gizmo. Il est décliné en deux configurations possibles : avec un échantillonnage à 30 ms et un bitrate fixe à 13,33 Kbps (en débit utile), et avec un échantillonnage à 20 ms et un bitrate fixe à 15.2 kbps. Les constructeurs (notamment Cisco), commencent à l’implémenter au niveau de leurs téléphones, car il offre lui aussi un bon compromis bande passante / qualité. Pour 20 ms, on aura donc des paquets avec 38 octets de charge utile, soit un débit IP nécessaire d’environ 31,2 Kbps.
Comme je l’ai énoncé en début d »article, la liste des codecs n’est pas complète car le but n’est pas de détailler tous les standards qui existent, mais de voir comment calculer la bande passante nécessaire pour les communications utilisant un des trois codecs cités ci-dessus. Par ailleurs, le mode de calcul est bien entendu extensible aux autres codecs !









Laissez votre réponse !
Vous devez être connecté pour poster un commentaire