FAMILLE G.729 DE Codecs À BAS DÉBIT (VoIP)
3.6
La famille de codecs G.729 est couramment utilisée dans la plupart des déploiements VoIP. G.729 est une recommandation ITU-T G.729 pour un algorithme de compression de la parole
à prédiction linéaire à code algébrique à structure conjuguée (CS-ACELP)
. G.729 utilise des modèles de voies vocales humaines adaptés aux signaux vocaux contrairement aux codecs G.711 et G.726, qui utilisent la compression basée sur la forme d’onde. Le G.729 de base compresse la voix à 8 kbps, ce qui fournit huit fois plus de compression que le G.711 et offre une bonne qualité vocale.
G.729 Annexe A (G.729A) est la version à complexité réduite de la recommandation G.729, et elle compresse la voix au même 8 kbps avec le compromis d’une légère perte de qualité par rapport au G.729. Cette version est développée principalement pour les applications multimédia simultanées de voix et de données, bien que l’utilisation du codec ne soit pas limitée à ces applications. G.729A est interopérable en flux binaire avec la version complète de G.729. Ce codec a une dissimulation de perte de paquets intégrée. Le codec avec le suffixe B noté G.729B ou G.729AB prend en charge VAD dans l’encodeur et CNG dans le décodeur. G.729 possède une large famille de codecs, et certains des codecs populaires
sont répertoriés dans le tableau 3.3. Dans le déploiement VoIP, G.729AB est couramment utilisé. Dans la mise à niveau à large bande, ces codecs peuvent être remplacés par G.729.1. Ces codecs à large bande sont interopérables avec les versions à bande étroite. Par conséquent, un codec à large bande seul devrait suffire à la fois pour le support à large bande et à bande étroite de 8 kbps. À l’exception du G.722, d’autres codecs à large bande compressent la voix à des débits inférieurs à ceux du G.711. Dans la section suivante, un aperçu de haut niveau sur G.729AB est donné. Le codec G.729AB utilise G.729 comme standard de base. Pour une meilleure compréhension de G.729AB, se référer aux recommandations G.729, G.729B et G.729A.
Tableau 3.3. Famille ITU-T G.729 de Codecs vocaux à Bande Étroite et à Large Bande
Nom du codec | Description | Application |
G.729 | CS de base de 8 kbps – | Pris en charge sur la voix VoIP |
Codec vocal ACELP | passerelles | |
G.729B | G.729 avec silence | |
compression | ||
G.729A | Complexité réduite | Populaire sur les adaptateurs VoIP et IP |
8 – téléphones kbps CS–ACELP | , compatibles avec G.729, | |
codec vocal | et G.729.1 | |
G.729AB | G.729A avec silence | compatible avec G.729, G729B, |
compression | G729.1 | |
G.729F (G.729 | 11,8 kbps CS-ACELP | Pas populaire en VoIP, fonctionne mieux |
Annexe E) | codage vocal | pour la musique et l’arrière-plan et |
l’algorithme | est utilisé dans les applications vidéo | |
G.729.1 large bande | Variable intégrée 8 – | Voix large bande |
et bande étroite | 32 kbps, bits | |
interopérable avec | ||
G.729, G.729A |
Codec G.729
Le codec G.729 se compose d’un codeur et d’un décodeur séparés. Le codec compresse les échantillons de parole sous forme de trames à l’aide d’une procédure d’analyse par synthèse CS-ACELP. Le codec fonctionne avec des trames de 10 ms avec une avance de 5 ms, ce qui entraîne un retard algorithmique total de 15 ms. Un aperçu du codeur et du décodeur est donné en relation avec la Fig. 3.4.
Figure 3.4. Codec G.729. a) compression du codeur. (b) décodeur – décompression d’ITU-T-G.729 – redessiné avec une certaine simplification.
Codeur G.729. Le codeur G.729 est basé sur le modèle de codage CELP (code-excited linear-prediction). Pour chaque trame de 10 ms, le signal vocal est analysé pour extraire les paramètres du modèle CELP. Les paramètres sont des coefficients de filtre de prédiction linéaire codés sous forme de paires spectrales de raies, des indices adaptatifs et à code fixe, et des gains. Ces paramètres sont codés et transmis en tant que charge utile à l’application VoIP. Comme le montre la Fig. 3.4, la parole prétraitée est analysée pour les coefficients de filtre LP. Ces coefficients sont convertis en paires de spectre de raies (LSP) et sont quantifiés à l’aide de la quantification vectorielle prédictive à deux étages (VQ). L’estimation de la hauteur de la poo ouverte est calculée pour chaque trame de 10 ms sur la base d’un signal vocal pondéré perceptuellement. L’analyse de pas en boucle fermée est effectuée à l’aide du signal cible et de la réponse impulsionnelle en recherchant autour de la valeur du retard de pas ouvert-l oop. Le nouveau signal cible est calculé et utilisé dans la recherche codétopique fixe pour arriver à une excitation optimale. Les gains des contributions codétopiques adaptatives et fixes sont quantifiés vectoriels. Enfin, les mémoires de filtrage sont mises à jour à l’aide du signal d’excitation déterminé. Pour 80 échantillons d’entrée, le codeur donne 10 octets de sortie compressée, ce qui rend le débit total de 8 kbps. Ces 10 octets sont constitués de plusieurs paramètres énumérés dans le tableau 3.4. D’après le tableau, on peut observer que le codage G.729 divise les paramètres en plusieurs classes ayant chacune quelques bits. Il est entièrement différent de la compression G.711 et G.726. Pour plus de détails sur le codage et les paramètres référencés dans le tableau 3.4 se référer à.
Décodeur G.729. Le décodeur G.729 est illustré à la Fig. 3.4b). Le décodeur génère 80 échantillons de valeurs PCM linéaires de 16 bits pour chaque 80 bits (10 octets) de données. Les paramètres d’entrée du décodeur sont les coefficients LSP, les deux retards de pas fractionnaires, deux vecteurs codétopiques fixes et les deux ensembles de gains codétopiques adaptatifs et fixes. Initialement, les coefficients LSP sont interpolés et convertis en coefficients de filtre LP pour chaque sous-trame. Pour chaque sous-trame de 5 ms, l’excitation est construite en ajoutant les vecteurs codétopiques adaptatifs et fixes.
Tableau 3.4. G.729 Paramètres du codeur et Allocation des Bits compressés pour une trame de 10 ms
Nom du paramètre | Mot de code | Sous-trame 1 | Sous-trame 2 | Total Bits par Trame |
Paires de spectre de raies (LSP) | L0, L1, L2, L3 | 18 | ||
Délai de codétopie adaptatif | P1, P2 | 8 | 5 | 13 |
Parité de retard de pas | P0 | 1 | 1 | |
Fixe index codétopique | C1, C2 | 13 | 13 | 26 |
Signe codétopique fixe | S1, S2 | 4 | 4 | 8 |
Gains codétopiques au stade-1 | GA1, GA2 | 3 | 3 | 6 |
Gains codétopiques au stade-2 | GB1, GB2 | 4 | 4 | 8 |
Bits totaux dans une trame de 10 ms | 80 |
La parole est reconstruite en filtrant le excitation à travers le filtre de synthèse de LP. La parole reconstruite est traitée par l’étape de post-traitement, qui comprend un post-filtre adaptatif basé sur les filtres de synthèse à long terme et à court terme, suivi d’un filtre passe-haut et d’une opération de mise à l’échelle.
En plus d’un retard algorithmique de 15 ms, des retards peuvent être possibles en raison du temps d’exécution des algorithmes codeur et décodeur dans le processeur. Selon l’implémentation, lors du traitement de plusieurs canaux sur un processeur, le délai augmente pour le dernier canal traité.
Leave a Reply