Tehnike kodiranja glasa

Za potrebe VoIP-a potrebno je glas prenijeti na način da se sačuva kvaliteta na koju su korisnici navikli kod klasične telefonije (POTS). Tri su bitna čimbenika koji određuju kvalitetu glasa kod VoIP tehnologije: kašnjenje, varijacija kašnjenja (jitter) i izbor tehnike kodiranja.

Generalno, dobar audio kodek je onaj koji ima dobru kvalitetu glasa uz što manji frekvencijski pojas. Dok se širina pojasa može lako odrediti, to nije slučaj s kvalitetom govora. Najčešći način mjerenja kvalitete govora je MOS (Mean Opinion Score), definiran preporukom ITU-T P.800. MOS je zapravo prilično neznanstvena metoda ocjenjivanja kvalitete govora u kojoj veći broj ljudi sluša uzorke govora kodirane različitim tehnikama i dodjeljuje im ocjene od 1 do 5, gdje je 5 najveća ocjena. Budući da se testiranje radi na većem uzorku ljudi, i ponovljeni testovi daju otprilke iste ocjene za određene tehnike kodiranja. Dakako, P.800 definira izbor slušača, analizu rezultata, okolinu u kojoj se izvodi testiranje itd. Tablica 1 prikazuje MOS vrijednosti za najčešće korištene kodeke za VoIP.

Tablica 1. MOS vrijednosti najkorištenijih kodeka

Kašnjenje

Za razliku od podatkovnog, prijenos govora je puno manje osjetljiv na gubitak paketa. S druge strane, prijenos govora je, kao i sve druge aplikacije u stvarnom vremenu, jako osjetljiv na kašnjenje što u podatkovnom prijenosu nije jako izraženo.
Kašnjenje možemo definirati kao zbroj više čimbenika od kojih su najvažniji kodiranje, enkapsulacija u datagram, usmjeravanje kroz mrežu, te dekodiranje na odredištu.
Kašnjenje koje se razmatra u telefoniji je sveukupno kašnjenje (round-trip delay), tj. ukupno kašnjenje u oba smjera. ITU-T je u preporuci G.114 definirao maksimalno ukupno dopušteno kašnjenje u telefoniji od 300 ms. Veće kašnjenje od 300 ms stvara velike probleme u komunikaciji jer postaje teško odlučiti kada je osoba na drugoj strani prestala pričati. To povećava vjerojatnost da će osobe razgovarati u isto vrijeme. Ova pojava je primjetna u međunarodnim pozivima preko satelita.

Varijacija kašnjenja

Kod aplikacija u stvarnom vremenu od samog kašnjenja još je gora varijacija kašnjenja. Zbog toga se nastoji da varijacija kašnjenja bude što manja, tj. da kašnjenje bude konstantno. To se postiže implementacijom spremnika u koji se pohranjuju govorni paketi koji se zatim jednoliko reproduciraju na prijemnoj strani. Nedostatak takvih spremnika je da oni unose dodatno kašnjenje u VoIP prijenos.
Dva su razloga nastajanja varijacije kašnjenja u IP mrežama. Prvo, paketi mogu ići različitim putovima od izvorišta do odredišta, a samim time i njihovo putovanje ima različito trajanje. Osim toga, i po istom putu paketi ovisno o opterećenju u mreži mogu putovati različito vrijeme. Problem varijacije kašnjenja ne postoji u klasičnoj mreži s komutacijom kanala gdje se svakom pozivu dodjeljuje zasebni kanal.
Tehnike kodiranja govora

Ljudski govor je uglavnom u području između 300 i 3.800 Hz. Stoga svi koderi obrađuju govor do frekvencije od 4 KHz. Svi ti koderi nastoje dosegnuti toll quality kvalitetu zvuka (MOS 4 ili više) koja je karakteristična u klasičnoj telefonskoj mreži. Na slici 1 prikazano je kakvu kvalitetu pojedine tehnike kodiranja postižu u ovisnosti o brzini prijenosa.

Slika 1. PRIKAZ Grafički prikaz ovisnosti MOS-a i brzine prijenosa za pojedine kodeke

Postoje tri vrste kodera govora: koderi valnog oblika (waveform), vokoderi i hibridni koderi. Koderi valnog oblika analogni signal filtriraju, uzorkuju, kvantiziraju i kodiraju. Na prijemnoj strani odvija se obrnuti proces. Općenito, koderi valnog oblika nisu kompleksni i pružaju visoku kvalitetu govora. Njihov najveći nedostatak je da trebaju veliki frekvencijski pojas u odnosu na druge kodeke. Ukoliko se ovi kodeci koriste na suženom pojasu, kvaliteta im drastično pada. Tipični predstavnici ovih kodeka su ITU-T G.711, poznatiji i kao PCM i G.726, poznatiji kao ADPCM (Adaptive Differential PCM).

G.711 radi na 64 kbps ima MOS 4,3. Karakteristika govora je da se relativno polako mijenja tijekom vremena, pa je moguće predvidjeti vrijednost uzorka govora na temelju prošlih uzoraka. Tu osobinu govora koristi ADPCM. I prijemna i predajna strana rade predviđanje uzorka govora, a predajna strana računa i grešku između predviđenog i stvarnog uzorka. Ta greška se kvantizira i šalje na prijemnu stranu. Budući da su predviđanja govora prilično točna, potrebno je manje bitova za prijenos greške nego stvarnog signala. Druga strana koristi informaciju o greški da popravi predviđeni signal. ADPCM na 32 kbps ima MOS 4,0. Koderi valnog oblika ne stvaraju algoritmično kašnjenje.

Vokoderi nastoje govor prezentirati pomoću matematičkog modela. Obično koriste LPF (Linear Predictive Filter) model koji predstavlja govorni trakt, a pobudu predstavlja zastavica koja označava periodični (voiced) ili šumni (unvoiced) signal. Informacija koja se šalje na drugi kraj je skup parametara koji opisuju signal, a ne sam signal. Vokoderi rade na malim brzinama prijenosa, ali zvuk koji proizode zvuči sintetički. Povećanje brzine ne donosi bitno povećanje kvalitete zvuka zbog ograničenja modela na kojem se temelje. Zbog toga vokoderi nemaju primjenu u javnim mrežama.

Hibridni koderi

Hibridni koderi nastoje preuzeti najbolje karakteristike kodera valnih oblika (kvaliteta zvuka) i vokodera (mala brzina prijenosa). Kod hibridnih kodera zvuk se uzorkuje i iz uzoraka se izvlače karakteristični parametri govora. Ti se parametri ne kodiraju direktno, nego se iz njih ponovno sintetizira segment zvuka iz kojeg su nastali. To sintetizirano razdoblje govora (tipično 20 ms) zatim se uspoređuje s originalnim uzorkom. Ako su ta dva uzorka prihvatljive sličnosti, ništa se ne podešava, ali ukoliko to nije slučaj, parametri govora se podešavaju da bi se dobila bolja sličnost.

Ova tehnika se zove AbS (Analysis by Synthesis) jer se naknadno podešavaju parametri govora da bi sintetizirani glas što više sličio originalnom. Nakon što se parametri govora podese, oni se ne kodiraju, nego ih koder nastoji usporediti s već predefiniranim vrijednostima iz knjige kodova (codebook). Kad se nađe vrijednost iz knjige kodova koja najbolje odgovara, šalje se pozicija iz knjige kodova umjesto parametara. Na taj se način smanjuje količina podataka koja se šalje. Ova tehnika kodiranja koristi se u cijeloj seriji CELP (Code Excited Linear Predictive) kodera. Cijeli ovaj proces nemoguće je izvesti bez generiranja dodatnog kašnjenja. Kašnjenje na dekoderu je nešto manje nego kašnjenje na koderu. Općenito vrijedi kod hibridnih kodera da što je manja prijenosna brzina (bit rate), to je veće kašnjenje.

Kodeci koji se koriste u VoIP-u

Osim kodera valnog oblika (G.711 i G.726) u VoIP-u se još koriste i hibridne tehnike kodiranja govora, dok se vokoderi ne koriste zbog slabe kvalitete zvuka. Najčešće korišteni hibridni koderi su:

G.723.1 – Radi na jednoj od dvije brzine 5,3 kbps i 6,3 kbps. Ukupno kašnjenje ovog algoritma je 37 ms. U mogućnosti je detektirati tišinu kad šalje tzv. SID (Silence Insertion Description) pakete (ova mogućnost je definirana u G.723.1 annex A) koji trebaju svega 1 kbps. MOS ovog kodeka je 3,8.
G.729 – U osnovnoj verziji ovaj kodek ima MOS 4,0, kašnjenje od 15 ms i treba svega 8 kbps. Glavni nedostatak mu je velika kompleksnost, stoga je razvijena jednostavnija verzija G.729 annex A koja ima MOS od 3,7.

G.728 – Ovaj kodek je poznat i pod nazivom Low Delay CELP zbog izrazito malog kašnjenja koje stvara (manje od 1 ms). MOS iznosi 3,9, a za rad treba 16 kbps. Prilično ga je rijetko naći u komercijalnim VoIP proizvodima jer je jako procesorski zahtjevan, što zahtijeva korištenje jačeg DSP-a, a to poskupljuje cijenu samog uređaja.
Općenito treba smanjiti broj kodiranja/dekodiranja kroz mrežu. U idealnom slučaju analogni signal se samo jednom kodira i dekodira na odredištu. Nije mudro kodirati analogni signal s npr. G.728, kasnije u mreži konvertirati na G.711, a potom kodirati koristeći G.729. U tom će slučaju kvaliteta zvuka biti manja od najniže MOS vrijednosti u takvom lancu jednostavno zato što svaki kodek generira aproksimaciju signala kojeg prima.

Ukupno kašnjenje može se smanjiti dobrim odabirom tehnike kodiranja. Pritom treba paziti da kvaliteta govora, tj. MOS ne padne značajno ispod 4. Treba napomenuti da su MOS vrijednosti dobivene u laboratorijskim uvjetima i da će u realnoj mrežnoj implementaciji MOS biti nešto manji. Recimo, G.711 koji ima MOS 4,3 jako je osjetljiv na gubitke paketa, i u realnoj mreži u kojoj postoje takvi gubici MOS će imati manju vrijednost. S druge strane, G.729 je manje osjetljiv na problem gubitka paketa jer ima mogućnost nadoknaditi taj gubitak interpolacijom iz prijašnjih paketa.
Izvor: www.masmedia.hr