G. 729-familj av Codecs med låg bithastighet (VoIP)
3.6
G. 729-familjen av codecs används populärt i de flesta VoIP-distributioner. G. 729 är en ITU-T G. 729 rekommendation för en konjugatstruktur algebraisk-kod-upphetsad linjär förutsägelse (CS-ACELP)
talkomprimeringsalgoritm. G. 729 använder sig av mänskliga röstkanalmodeller som är lämpliga för röstsignaler till skillnad från G. 711 och G. 726 codecs, som använder vågformsbaserad komprimering. Basic G. 729 komprimerar röst till 8 kbps, vilket ger åtta gånger mer komprimering än G. 711 och ger god röstkvalitet.
G. 729 Bilaga A (G.729a) är den reducerade komplexitetsversionen av G. 729-rekommendationen, och den komprimerar röst till samma 8 kbps med avvägning av en liten kvalitetsförlust jämfört med G. 729. Denna version är utvecklad främst för multimedia samtidiga röst-och dataapplikationer, även om användningen av codec inte är begränsad till dessa applikationer. G. 729A är bitström interoperabel med den fullständiga versionen av G. 729. Denna codec har inbyggd paketförlust dölja. Codec med suffix B betecknad som G. 729B eller G. 729AB stöder VAD i kodaren och CNG i avkodaren . G.729 har en bred familj av codecs, och några av de
populära codecs listas i tabell 3.3. I VoIP-distribution används G. 729AB populärt. I bredbandsuppgraderingen kan dessa codecs ersättas med G. 729.1. Dessa bredbandskodekar är interoperabla med smalbandsversioner. Därför bör en bredbandskodek ensam vara tillräcklig för både bredband och 8-kbps smalbandsstöd. Förutom G. 722 komprimerar andra bredbandskoder röst till bithastigheter lägre än G. 711. I följande avsnitt ges en översikt på hög nivå på G. 729AB. Codec G. 729AB använder sig av G. 729 som baslinjestandard. För bättre förståelse av G. 729AB, se G. 729, G. 729B och G. 729A rekommendationer.
tabell 3.3. ITU-T G. 729 familj av Narrowbond och bredband tal Codecs
Codec namn | beskrivning | ansökan |
G. 729 | grundläggande 8-kbps CS – | stöds på VoIP-röst |
ACELP tal codec | gateways | |
G. 729B | G.729 med tystnad | |
komprimering | ||
G. 729A | minskad komplexitet | populär på VoIP-adaptrar och IP |
8 – kbps CS – ACELP | telefoner, kompatibel med G. 729, | |
tal codec | och G. 729.1 | |
G. 729AB | G. 729A med tystnad | kompatibel med G. 729, G729B, |
komprimering | G729.1 | |
G. 729E (G.729 | 11.8 – kbps CS-ACELP | inte populär i VoIP, fungerar bättre |
Bilaga E) | talkod | för musik och bakgrund och |
algoritm | används i videoapplikationer | |
G. 729.1 bredband | inbäddad variabel 8 – | Bredbandsröst |
och smalband | 32 kbps, bitar | |
interoperabel med | ||
G. 729, G.729A |
G. 729 Codec
G. 729 codec består av en separat kodare och avkodare. Codec komprimerar talprover som ramar med hjälp av en CS-ACELP-analys-för-syntes-procedur. Codec arbetar med 10-ms-ramar med en blick framför 5 ms, vilket resulterar i total algoritmisk fördröjning på 15 ms. en översikt över kodaren och avkodaren ges i förhållande till Fig. 3.4.
figur 3.4. G. 729 codec. (a) kodare-komprimering. (b) avkodare-dekompression från ITU-T-G. 729 — ritas om med viss förenkling.
G. 729 Kodare. G. 729-kodaren är baserad på kod-upphetsad linjär förutsägelse (CELP) kodningsmodell. För varje 10-ms-ram analyseras talsignalen för att extrahera parametrarna för CELP-modellen. Parametrarna är linjära prediktionsfilterkoefficienter kodade som linjespektralpar, adaptiva och fasta kodetopiska index och vinster. Dessa parametrar kodas och överförs som nyttolast till VoIP-program. Såsom visas i Fig. 3.4, förbehandlat tal analyseras för lp-filterkoefficienter. Dessa koefficienter omvandlas till linjespektrumpar (LSP) och kvantiseras med hjälp av prediktiv tvåstegsvektorkvantisering (VQ). Uppskattningen av öppen OOP-tonhöjd beräknas för varje 10-ms-ram baserat på en perceptuellt viktad talsignal. Analys av sluten slinga utförs med hjälp av målsignalen och impulsresponsen genom att söka runt värdet på den öppna-l oop-stigfördröjningen. Den nya målsignalen beräknas och används i den fasta codetopic-sökningen för att komma fram till optimal excitation. Vinsterna av adaptiva och fasta kodetopiska bidrag är vektorkvantiserade. Slutligen uppdateras filterminnen med hjälp av den bestämda excitationssignalen. För varje 80 inmatningsprover ger kodaren 10 byte komprimerad utgång vilket gör den totala bithastigheten 8 kbps. Dessa 10 byte består av flera parametrar som anges i tabell 3.4. Från tabellen kan det observeras att G. 729-kodning delar upp parametrar i flera klasser med var och en av dem som har några bitar. Det skiljer sig helt från G. 711 och G. 726-komprimering. För mer information om kodning och parametrar som hänvisas till i tabell 3.4 hänvisa till .
G. 729 Avkodare. G. 729-avkodaren illustreras i Fig. 3.4 b. Avkodaren genererar 80 prover av 16-bitars linjära PCM-värden för varje 80 bitar (10 byte) data. Ingångsparametrarna för avkodaren är LSP-koefficienter, de två fraktionerade tonhöjdsfördröjningarna, två fasta kodetopiska vektorer och de två uppsättningarna av adaptiva och fasta kodetopiska vinster. Initialt interpoleras LSP-koefficienterna och konverteras till LP-filterkoefficienter för varje underram. För varje 5-ms-underram konstrueras excitationen genom att lägga till de adaptiva och fasta kodetopiska vektorerna.
tabell 3.4. G.729 kodare parametrar och komprimerade bitar tilldelning för 10-ms Ram
parameternamn | kodord | underram 1 | underram 2 | totalt bitar per Ram |
Linjespektrumpar (LSP) | L0, L1, L2, L3 | 18 | ||
adaptiv kodetopisk fördröjning | P1, P2 | 8 | 5 | 13 |
tonhöjdsfördröjning paritet | P0 | 1 | 1 | |
fast kodetopiskt index | C1, C2 | 13 | 13 | 26 |
fast codetopic tecken | S1, S2 | 4 | 4 | 8 |
Kodetopiska vinster vid steg-1 | GA1, GA2 | 3 | 3 | 6 |
Codetopic vinster på scenen-2 | GB1, GB2 | 4 | 4 | 8 |
totalt bitar i 10-ms ram | 80 |
tal rekonstrueras genom att filtrera excitation genom lp-syntesfiltret. Det rekonstruerade talet bearbetas genom efterbehandlingssteget, vilket inkluderar ett adaptivt efterfilter baserat på de långsiktiga och kortsiktiga syntesfiltren följt av ett högpassfilter och skalningsoperation.
förutom en algoritmisk fördröjning på 15 ms kan förseningar vara möjliga på grund av exekveringstiden för kodaren och avkodningsalgoritmerna i processorn. Beroende på implementeringen ökar fördröjningen för den senast bearbetade kanalen under bearbetning av flera kanaler på en processor.
Leave a Reply