Familia G. 729 de codecuri cu rată redusă de biți (VoIP)
3.6
familia de codecuri G. 729 este folosită popular în majoritatea implementărilor VoIP. G. 729 este o recomandare ITU-T G. 729 pentru o predicție liniară cu structură conjugată algebrică-Cod-excitată (CS-ACELP)
algoritm de compresie a vorbirii. G. 729 folosește modele de tract vocal uman potrivite pentru semnale vocale spre deosebire de codecurile G. 711 și G. 726, care utilizează compresie pe bază de undă. G. 729 de bază comprimă vocea la 8 kbps, ceea ce oferă o compresie de opt ori mai mare decât G. 711 și oferă o calitate bună a vocii.
G. 729 Anexa A (G.729A) este versiunea de complexitate redusă a recomandării G. 729 și comprimă vocea la aceleași 8 kbps cu compromisul unei ușoare pierderi de calitate în comparație cu G. 729. Această versiune este dezvoltată în principal pentru aplicații multimedia simultane de voce și date, deși utilizarea codecului nu se limitează la aceste aplicații. G. 729a este fluxul de biți interoperabil cu versiunea completă a G. 729. Acest codec are built-in pierderea de pachete ascundere. Codecul cu sufixul B notat ca G. 729b sau G. 729AB acceptă VAD în codificator și CNG în decodificator . G.729 are o familie largă de codecuri, iar unele dintre codecurile populare
sunt enumerate în tabelul 3.3. În implementarea VoIP, G. 729AB este utilizat în mod popular. În upgrade-ul de bandă largă, aceste codec – uri pot fi înlocuite cu G. 729.1. Aceste codecuri de bandă largă sunt interoperabile cu versiunile de bandă îngustă. Prin urmare, un codec de bandă largă singur ar trebui să fie suficient atât pentru bandă largă, cât și pentru suport de bandă îngustă de 8 kbps. Cu excepția G. 722, alte codecuri de bandă largă comprimă vocea la rate de biți mai mici decât G. 711. În secțiunea următoare, este prezentată o imagine de ansamblu la nivel înalt asupra G. 729AB. Codecul G. 729AB folosește G. 729 ca standard de bază. Pentru o mai bună înțelegere a G. 729AB, consultați recomandările G. 729, G. 729b și G. 729a.
tabelul 3.3. ITU-T G. 729 familie de codecuri de vorbire cu bandă îngustă și bandă largă
nume Codec | descriere | cerere |
G. 729 | Basic 8-kbps CS – | acceptat pe VOIP voice |
acelp vorbire codec | gateway-uri | |
G. 729b | G.729 cu tăcere | |
compresie | ||
G. 729a | complexitate redusă | Popular pe Adaptoare VoIP și IP |
8 – kbps CS-ACELP | telefoane, compatibil cu G. 729, | |
codecul de vorbire | și G. 729.1 | |
G. 729AB | G. 729A cu tăcere | compatibil cu G. 729, G729B, |
compresie | G729.1 | |
G. 729E (G.729 | 11.8 – kbps CS-ACELP | nu este popular în VoIP, funcționează mai bine |
Anexa E) | codarea vorbirii | pentru muzică și fundal și |
algoritmul | este utilizat în aplicații video | |
G. 729.1 bandă largă | variabilă încorporată 8 – | voce bandă largă |
și bandă îngustă | 32 kbps, biți | |
interoperabil cu | ||
G. 729, G.729A |
codecul G. 729
codecul G. 729 constă dintr-un codificator și un decodor separat. Codecul comprimă probele de vorbire ca cadre folosind o procedură de analiză prin sinteză CS-ACELP. Codecul funcționează cu cadre de 10 ms cu o privire înainte de 5 ms, ceea ce duce la o întârziere algoritmică totală de 15 ms. o imagine de ansamblu asupra codificatorului și decodorului este dată în raport cu Fig. 3.4.
figura 3.4. Codecul G. 729. (a) encoder-compresie. (b) decodor-decompresie de la ITU-T-G. 729 — redesenat cu o oarecare simplificare.
Codificator G. 729. Codificatorul G. 729 se bazează pe modelul de codificare cu predicție liniară excitată de cod (celp). Pentru fiecare cadru de 10 ms, semnalul de vorbire este analizat pentru a extrage parametrii modelului CELP. Parametrii sunt coeficienți de filtrare cu predicție liniară codificați ca perechi spectrale de linie, indici adaptivi și codetopici fixi și câștiguri. Acești parametri sunt codificați și transmiși ca sarcină utilă aplicației VoIP. Așa cum se arată în Fig. 3.4, discursul preprocesat este analizat pentru coeficienții de filtrare LP. Acești coeficienți sunt convertiți în perechi de spectru de linie (LSP) și sunt cuantificați folosind cuantificarea vectorială predictivă în două etape (VQ). Estimarea pitch open — oop este calculată pentru fiecare cadru de 10 ms pe baza unui semnal de vorbire ponderat perceptual. Analiza pasului în buclă închisă se realizează folosind semnalul țintă și răspunsul la impuls prin căutarea în jurul valorii întârzierii pasului deschis-L oop. Noul semnal țintă este calculat și utilizat în căutarea codetopică fixă pentru a ajunge la excitația optimă. Câștigurile contribuțiilor codetopice adaptive și fixe sunt cuantificate vectorial. În cele din urmă, memoriile de filtrare sunt actualizate folosind semnalul de excitație determinat. Pentru fiecare 80 de eșantioane de intrare, codificatorul oferă 10 octeți de ieșire comprimată, făcând rata totală de biți de 8 kbps. Acești 10 octeți constau din mai mulți parametri enumerați în tabelul 3.4. Din tabel, se poate observa că codificarea G. 729 împarte parametrii în mai multe clase, fiecare dintre ele având câțiva biți. Este complet diferit de compresia G. 711 și G. 726. Pentru mai multe detalii despre codificare și parametrii menționați în tabelul 3.4 se referă la .
Decodor G. 729. Decodorul G. 729 este ilustrat în Fig. 3.4 litera (b). Decodorul generează 80 de eșantioane de valori PCM liniare pe 16 biți pentru fiecare 80 de biți (10 octeți) de date. Parametrii de intrare pentru decodor sunt coeficienții LSP, cele două întârzieri ale pitch-ului fracțional, doi vectori fix-codetopic și cele două seturi de câștiguri adaptive și fixe codetopic. Inițial, coeficienții LSP sunt interpolați și convertiți în coeficienți de filtrare LP pentru fiecare subframe. Pentru fiecare subframe de 5 ms, excitația este construită prin adăugarea vectorilor codetopici adaptivi și fixați.
tabelul 3.4. G.729 parametrii codificatorului și alocarea de biți comprimați pentru cadrul 10-ms
nume parametru | cuvânt de cod | Subframe 1 | Subframe 2 | Total biți per Cadru |
perechi de spectru de linie (LSP) | L0, L1, L2, L3 | 18 | ||
Cod Adaptivtopic delay | P1, P2 | 8 | 5 | 13 |
paritatea întârzierii pasului | P0 | 1 | 1 | |
fix index codetopic | C1, C2 | 13 | 13 | 26 |
semn codetopic fix | S1,S2 | 4 | 4 | 8 |
câștiguri Codetopice în stadiu – 1 | GA1, GA2 | 3 | 3 | 6 |
câștigurile Codetopic la etapa-2 | GB1, GB2 | 4 | 4 | 8 |
total biți în cadru de 10 ms | 80 |
discursul este reconstruit prin filtrarea excitație prin filtrul de sinteză LP. Discursul reconstruit este procesat prin etapa postprocesare, care include un post-filtru adaptiv bazat pe filtrele de sinteză pe termen lung și pe termen scurt urmate de un filtru de trecere înaltă și operație de scalare.
în plus față de o întârziere algoritmică de 15 ms, întârzierile pot fi posibile din cauza timpului de execuție al algoritmilor codificatorului și decodificatorului din procesor. În funcție de implementare, în timpul procesării mai multor canale pe un procesor, întârzierea crește pentru ultimul canal procesat.
Leave a Reply