G. 729 familie af lav-BIT-RATE Codecs (VoIP)
3.6
G. 729-familien af codecs bruges populært i de fleste VoIP-implementeringer. G. 729 er en ITU-T G. 729 anbefaling til en konjugeret struktur algebraisk-kode-ophidset lineær forudsigelse (CS-ACELP)
talekomprimeringsalgoritme. G. 729 gør brug af menneskelige vokale kanalmodeller, der er egnede til stemmesignaler i modsætning til G. 711 og G. 726 codecs, der bruger bølgeformbaseret kompression. Grundlæggende G. 729 komprimerer stemme til 8 kbps, hvilket giver otte gange mere komprimering end G. 711 og giver god stemmekvalitet.
G. 729 Bilag A (G.729A) er den reducerede kompleksitetsversion af G. 729-anbefalingen, og den komprimerer stemme til de samme 8 kbps med afvejningen af et lille tab af kvalitet sammenlignet med G. 729. Denne version er primært udviklet til multimedie samtidige tale-og dataapplikationer, selvom brugen af codec ikke er begrænset til disse applikationer. G. 729a er bit stream interoperabel med den fulde version af G. 729. Denne codec har indbygget pakketab skjul. Codec med suffiks B betegnet som G. 729b eller G. 729ab understøtter VAD i koderen og CNG i dekoderen . G.729 har en bred familie af codecs, og nogle af de
populære codecs er angivet i tabel 3.3. I VoIP-implementering bruges G. 729ab populært. I bredbåndsopgraderingen kan disse codecs erstattes med G. 729.1. Disse bredbånds codecs er interoperable med smalbåndsversioner. Derfor bør en bredbåndskodec alene være tilstrækkelig til både bredbånd og 8 kbps smalbåndsstøtte. Bortset fra G. 722 komprimerer andre bredbånds codecs stemme til bithastigheder lavere end G. 711. I det følgende afsnit gives en oversigt på højt niveau på G. 729ab. Codec G. 729ab gør brug af G. 729 som en baseline standard. For bedre forståelse af G. 729ab henvises til anbefalingerne G. 729, G. 729B og G. 729a.
tabel 3.3. ITU-T G. 729 familie af Smalbond og bredbånd tale Codecs
Codec navn | beskrivelse | ansøgning |
G. 729 | grundlæggende 8-kbps CS – | understøttet på VoIP stemme |
ACELP tale codec | portaler | |
g. 729b | G.729 med stilhed | |
kompression | ||
G. 729a | reduceret kompleksitet | populær på VoIP-adaptere og IP |
8 – kbps CS-ACELP | telefoner, kompatibel med G. 729, | |
tale codec | og G. 729.1 | |
G. 729AB | G. 729A med stilhed | kompatibel med G. 729, G729B, |
kompression | G729.1 | |
G. 729E (G.729 | 11.8-kbps CS-ACELP | ikke populær i VoIP, fungerer bedre |
Bilag E) | talekodning | for musik og baggrund og |
algoritme | bruges i videoapplikationer | |
G. 729. 1 bredbånd | indlejret variabel 8 – | Bredbåndsstemme |
og smalbånd | 32 kbps, bits | |
interoperabel med | ||
G. 729, G.729A |
G. 729 Codec
G. 729 codec består af en separat indkoder og dekoder. Codec komprimerer taleprøver som rammer ved hjælp af en CS-ACELP-analyse-for-syntese-procedure. Codec fungerer med 10-ms-Rammer med et kig foran 5 ms, hvilket resulterer i total algoritmisk forsinkelse på 15 ms. en oversigt over koderen og dekoderen gives i forhold til Fig. 3.4.
figur 3.4. G. 729 codec. (a) encoder-kompression. (B) dekoder-dekompression fra ITU-T-G. 729 — tegnet igen med en vis forenkling.
G. 729 Encoder. G. 729 coder er baseret på kode-ophidset lineær forudsigelse (CELP) kodningsmodel. For hver 10-ms-ramme analyseres talesignalet for at udtrække parametrene for CELP-modellen. Parametrene er lineære forudsigelsesfilterkoefficienter kodet som linjespektrale par, adaptive og faste kodetopiske indekser og gevinster. Disse parametre er kodet og transmitteres som nyttelast til VoIP ansøgning. Som vist i Fig. 3.4, forbehandlet tale analyseres for LP-filterkoefficienter. Disse koefficienter konverteres til linjespektrumpar (LSP) og kvantiseres ved hjælp af forudsigelig to-trins vektorkvantisering (VK). Open-oop-tonehøjdestimeringen beregnes for hver 10-ms-ramme baseret på et perceptuelt vægtet talesignal. Closed-loop pitch analyse udføres ved hjælp af målsignalet og impulsresponset ved at søge omkring værdien af open-l oop pitch forsinkelse. Det nye målsignal beregnes og bruges i den faste kodetopiske søgning for at nå frem til optimal ophidselse. Gevinsterne ved adaptive og faste kodetopiske bidrag er vektor kvantiseret. Endelig opdateres filterhukommelserne ved hjælp af det bestemte spændingssignal. For hver 80 prøver af input giver koderen 10 bytes komprimeret output, hvilket gør den samlede bithastighed 8 kbps. Disse 10 bytes består af flere parametre som anført i tabel 3.4. Fra tabellen kan det observeres, at G. 729-kodning opdeler parametre i flere klasser, hvor hver af dem har et par bits. Det er helt anderledes end G. 711 og G. 726 kompression. For flere detaljer om kodning og parametre, der henvises til i tabel 3.4 henviser til .
G. 729 Dekoder. G. 729-dekoderen er illustreret i Fig. 3.4 b). Dekoderen genererer 80 prøver af 16-bit lineære PCM-værdier for hver 80 bit (10 byte) data. Inputparametrene for dekoderen er LSP-koefficienter, de to fraktionerede tonehøjdeforsinkelser, to faste kodetopiske vektorer og de to sæt adaptive og faste kodetopiske gevinster. Oprindeligt interpoleres LSP-koefficienterne og konverteres til LP-filterkoefficienter for hver underramme. For hver 5-ms underramme konstrueres spændingen ved at tilføje de adaptive og faste kodetopiske vektorer.
tabel 3.4. G.729 Encoder parametre og komprimeret Bits tildeling til 10-ms ramme
parameternavn | kodeord | underramme 1 | underramme 2 | i alt bit pr ramme |
linjespektrumpar (LSP ‘ er) | L0, L1, L2, L3 | 18 | ||
adaptiv kodetopisk forsinkelse | P1, P2 | 8 | 5 | 13 |
Pitch forsinkelse paritet | P0 | 1 | 1 | |
fast kodetopisk indeks | C1, C2 | 13 | 13 | 26 |
fast kodetopisk tegn | S1, S2 | 4 | 4 | 8 |
Kodetopiske gevinster i fase-1 | GA1, GA2 | 3 | 3 | 6 |
Kodetopiske gevinster på scenen-2 | GB1, GB2 | 4 | 4 | 8 |
samlede bits i 10-ms ramme | 80 |
tale rekonstrueres ved at filtrere spænding gennem LP-syntesefilteret. Den rekonstruerede tale behandles gennem efterbehandlingsfasen, som inkluderer et adaptivt postfilter baseret på de langsigtede og kortsigtede syntesefiltre efterfulgt af et højpasfilter og skaleringsoperation.
ud over en algoritmisk forsinkelse på 15 ms kan forsinkelser være mulige på grund af udførelsestiden for koderen og dekoderalgoritmerne i processoren. Afhængigt af implementeringen øges forsinkelsen for den sidst behandlede kanal, mens der behandles flere kanaler på en processor.
Leave a Reply