G.729

G.729 este un codec audio (de fapt vocoder , coder de voce, vezi codificare audio parametrică ) care nu mai are licență de la începutul anului 2017 pentru comprimarea vorbirii în semnale digitale. Denumirea tehnică este „Conjugate Structure Algebraic Code Excited Linear Prediction ( CS-ACELP ). G.729 Anexa A și B sunt utilizate pentru telefonie prin Internet , de exemplu, datorită nivelului ridicat de compresie și a cerințelor de calcul reduse .

Specificatii tehnice

G.729 este o metodă hibridă de compresie care se bazează pe examinarea și transmiterea parametrilor de vorbire cu așa-numitul vocoder, precum și informații de diferență și sinteza vorbirii ulterioară. Codecul descompune semnalul audio în cadre de 10 milisecunde în lungime, pe care le examinează pentru proprietățile tipice ale limbajului. Acestea sunt puse în parametri pentru sinteza ulterioară. În plus, codecul transmite informații de diferență care rezultă din semnalul generat artificial și real. Într-un pachet de voce, două cadre de 10 milisecunde sunt de obicei transmise împreună, ceea ce înseamnă că întârzierea este de aproximativ 25 de milisecunde.

Acest codec poate procesa doar surse semnale audio care nu sunt limbaj uman. De exemplu, nu poate procesa în mod adecvat tonurile cu mai multe frecvențe utilizate în telefonia analogică . Vă puteți deplasa aici prin filtrarea tonurilor cu frecvență multiplă de la semnal și transmiterea lor în canalul de informații în conformitate cu RFC 2833 („outband”).

G.729 suprimă, de asemenea, pauzele în vorbire. Pentru ca acest lucru să nu sune ca o deconectare la ascultător, decodorul are capacitatea de a umple pauzele de vorbire cu așa-numitul zgomot de confort . Standardul include implementări posibile atât în virgulă fixă, cât și în formatul virgulă mobilă mai complex din punct de vedere tehnic , care facilitează utilizarea în diverse platforme DSP complexe . Din aceste motive, G.729 este comparativ intens din punct de vedere al calculului, în funcție de varianta utilizată; în funcție de implementare și de opțiunile pe care le conține, necesită aproximativ 50  MIPS . Variantele G.729A și G.729B au o complexitate de calcul scăzută și, de exemplu, necesită aproximativ 10,3 milioane de cicluri de ceas pentru 80 de eșantioane audio în implementarea de referință neoptimizată a ITU-T pe microcontrolerul MicroBlaze . Informațiile MIPS pot, totuși, să difere de valorile specificate în funcție de arhitectura utilizată și de tipul de optimizare și sunt doar valori de orientare aproximative.

variante

G.729 este în diferite variante în standard ca atașamente ( anexe engleze ) împărțite. Aceste anexe sunt marcate cu litere diferite și alte simboluri pentru a le distinge. Fiecare anexă descrie diferite combinații posibile care diferă în ceea ce privește efortul de implementare, puterea de calcul necesară și sfera funcțională a codecului. Pentru o decodificare corectă, codificatorul și decodificatorul trebuie să fie potrivite între ele.

Următoarele variante sunt disponibile în contextul G.729:

  Anexă
Funcționalitate - A. B. C. D. E. F. G H I. C + J
Complexitate scăzută   X X                  
Aritmetica punctului fix X X X   X X X X X X   X
Aritmetica în virgulă mobilă       X             X  
Rată de date 8 kbit / s X X X X X X X X X X X X
Rată de date 6,4 kbit / s         X   X   X X X  
Rată de date 11,8 kbit / s           X   X X X X  
DTX     X       X X   X X  
Rata de biți variabilă                       X

Acronimul DTX reprezintă transmisia discontinuă în germană de transmisie discontinuă , în care partea transmițătorului discursul pauze în care , de fapt numai gol prin transfer liber de zgomot ar trebui să fie detectate și transmise sub formă de semnale pauză de economisire lățime de bandă sunt reproduse pe partea de receptor ca zgomot de confort generat local. În Scorul mediu de opinie (MOS) , G.729 a obținut o calitate percepută de 3,98 din 5 puncte, în timp ce varianta G.729A a obținut doar 3,7 din 5 puncte.

Cele mai populare variante ale codecului sunt Anexa A și B, care utilizează o rată de biți fixă de 8 kbit / s pentru semnalul vocal codat , dar în unele variante sunt posibile și rate de biți fixe de 6,4 kbit / s și 11,8 kbit / s . Spectrul de frecvență variază de la 300 la 3400  Hz , conceptul de codare transmite doar cu precizie date vocale.

G.729.1 (G.729J)

Ultima extensie G.729J - această variantă corespunde denumirii de lucru G.729.1 - are capacitatea de a vorbi în bandă largă și de a codifica audio: Lățimea de bandă de frecvență transmisă a fost mărită la 50 Hz până la 7 kHz. Codecul G.729J este organizat ierarhic și rata de biți specifică și astfel calitatea vocală / audio poate fi setată la viteze de biți variabile prin simpla „tăiere” a fluxului de biți.

Calitatea vocii în comparație

Pentru a compara calitatea transmisiei , poate fi utilizată metoda punctajului mediu de opinie (MOS), care înregistrează percepția subiectivă a calității vorbirii unui utilizator (într-o situație auditivă). Scara MOS nu este o scară absolută, ci depinde de întrebarea respectivă și de mostrele de ascultare oferite în așa-numitul test auditiv. Prin urmare, același codec poate obține valori diferite în diferite teste. Cu toate acestea, ceea ce este important este diferența dintre codecul de testat și codecurile de referință cunoscute (de exemplu, BG711). În testele tipice, G.729 obține o valoare de aproximativ 3,9 (pe o scară MOS în cinci puncte). G.729 obține astfel o calitate vocală subiectivă mai mare decât alte codecuri (de exemplu, BG728 și G.723), dar este supusă codecului de referință G.711 (ISDN). G.711 obține o valoare MOS ușor mai mare de aproximativ 4.4, dar necesită o rată de transfer de date de 64 kbit / s, care este de opt ori mai mare decât G.729, care necesită doar 8 kbit / s.

Cheltuieli generale atunci când este utilizat cu RTP pe o rețea IPv4

Rata de date menționată de 8 kbit / s este nominală, se referă exclusiv la datele audio în sine. Dacă un flux de date este acum trimis printr-o rețea, există și cheltuielile generale de comutare a datelor pentru pachetele de date în care fluxul de date este ambalat. Când utilizați RTP într-o rețea IPv4, aceasta este de 40 de octeți pe pachet de date IPv4 (60 de octeți pentru IPv6). Lungimea cadrului pentru G.729 este de 10 ms și un astfel de cadru este codat cu 10 octeți. De obicei, sunt trimise 2 cadre pentru fiecare pachet de date IPv4. În consecință, cu această setare, aveți efectiv nevoie de 60 de octeți (40 + 10 + 10 octeți) pentru 20 ms de date vocale. Adică 3000 de octeți pe secundă, adică 24 kbit / s (3000 de octeți * 8/1000 = 24 kbit). Dacă împachetați mai mult de 2 cadre într-un pachet, cota relativă de date IP scade și cheltuielile generale devin mai mici. Cu 3 cadre pe pachet, ai avea nevoie doar de 18,7 kbit / s. Cu toate acestea, dezavantajul este o întârziere mai lungă: dacă aceasta este de 25 ms cu 2 cadre pe pachet (10 ms pe cadru + 5 ms timp de procesare), acesta este deja de 35 ms cu trei cadre. Dacă întârzierea devine prea mare, poate fi percepută ca enervantă de către utilizatori.

Rame /
pachet IPv4
ms /
pachet
Octeți / pachet
nominal
Bytes / pachet
eficient
Pachete /
secundă
kbit / s
nominal
kbit / s
eficient

% Cheltuieli generale
Întârziere
ms
1 10 10 50 100,0 A 8-a 40.0 400,00 15
2 20 20 60 50,0 A 8-a 24.0 200,00 25
3 30 30 70 33.3 A 8-a 18.7 133,33 35
Al 4-lea 40 40 80 25.0 A 8-a 16.0 100,00 45
5 50 50 90 20.0 A 8-a 14.4 80,00 55
Al 6-lea 60 60 100 16.7 A 8-a 13.3 66,67 65
Al 7-lea 70 70 110 14.3 A 8-a 12.6 57,14 75
A 8-a 80 80 120 12.5 A 8-a 12.0 50,00 85
9 90 90 130 11.1 A 8-a 11.6 44,44 95
10 100 100 140 10.0 A 8-a 11.2 40,00 105

umfla

  • ITU-T G.729 - Standardul include o implementare completă de referință a ITU-T în C pentru toate variantele G.729.

Dovezi individuale

  1. https://www.mgraves.org/2017/03/its-official-the-patents-on-g-729-have-expired/
  2. Russell Klein, Rajat Moona: Migrarea software-ului la hardware pe FPGA . Indian Institute of Technology Kanpur, 2005 ( iitk.ac.in [PDF]).
  3. Recomandarea G.729, Codificarea vorbirii la 8 kbit / s folosind o predicție liniară excitată de cod algebric cu structură conjugată (CS-ACELP) . UIT-T, 2007 (SERIA G: SISTEME DE TRANSMISIE ȘI SUPORT, SISTEME DIGITALE ȘI REȚELE - Echipamente terminale digitale - Codificarea semnalelor analogice prin alte metode decât PCM).