Głos w pakietach

Pełna identyfikacja pakietu oznacza nie tylko fakt transportu każdego pakietu niezależnie od pozostałych, ale przede wszystkim zajmowanie kanału komunikacyjnego wyłącznie na czas rzeczywistej potrzeby transmisji pakietowej. Dla przekazów głosowych fakt ten ma kapitalne znaczenie, gdyż w trakcie rozmowy mogą występować przerwy i chwile ciszy, które nie są transmitowane, a więc istotnie wpływają na zmniejszenie wymagań na szerokość pasma.

Wprawdzie głos zamieniony na pakiety można transmitować również przez Internet dzięki aplikacji VoIP, ale jak dotąd na przeszkodzie stoi nieprzewidywalna jakość sieci globalnej IP. W przypadku przekazu „czystych” danych niska jakość tej sieci ma stosunkowo niewielkie znaczenie: pakiety danych odebrane w niewłaściwej kolejności mogą być odpowiednio uszeregowane, fragmenty uszkodzone bądź stracone - przesłane powtórnie, a na pakiety opóźnione można chwilę poczekać. Zupełnie inaczej wygląda sytuacja w przypadku transmisji głosu czy obrazu, gdzie jakość sieci przesyłowej ma zasadnicze znaczenie. Uszkodzonych lub straconych pakietów głosowych zwykle nie można bowiem retransmitować w akceptowalnym czasie, na poprawne kolejkowanie też nie ma zbyt wiele czasu, a nadmierne opóźnienia pakietów czynią cały przekaz głosowy bezużytecznym.

Składanie głosu z transmitowanych ramek musi dokonywać się na tyle szybko (procesory sygnałowe DSP), aby wynikłe stąd opóźnienie nie utrudniało rozmowy, czyli dokonywało się w czasie rzeczywistym. Zbyt duże pakiety wprowadzają niedopuszczalne opóźnienia i szybkie pogorszenie jakości przy utracie kolejnych pakietów, natomiast zbyt małe są nieekonomiczne z powodu wysokiej redundancji sterowania przepływem. Przy wydajnych, współczesnych algorytmach kompresji typu LD-CELP (Low Delay Code Excited Linear Prediction), zgodnych ze specyfikacją G.729, najbardziej odpowiednie są ramki bardzo krótkie, nie przekraczające 10-15 bajtów.

Opóźnienia pakietów głosowych

Głos w pakietach

Idea działania bufora kontrolującego opóźnienia <i>jitter</i> w sieci pakietowej

Nieuniknioną konsekwencją przenoszenia nie tylko głosu przez współdzielone łącza telekomunikacyjne jest wprowadzanie zakłóceń opóźnieniowych, określanych jako opóźnienie jitter. Powstaje ono w sytuacji, gdy jedna aplikacja musi czekać na zwolnienie kanału zajętego przez inną, będącą właśnie w trakcie nadawania - jako że klasyczne medium transmisyjne pozwala na transmisje tylko jednej ramki fizycznej w dowolnie wybranym momencie. Także wahania (zmienność opóźnienia jitter) czasu opóźnień transmisji winny być minimalne, gdyż w przeciwnym razie ich skompensowanie w węźle odbiorczym będzie utrudnione, prowadząc w rezultacie do braku zrozumienia przesyłanej rozmowy.

Przez implementację odpowiednich buforów pamięciowych w każdym węźle sieci pakietowej i stosowanie odpowiednich algorytmów możliwa jest jednak jednoczesna realizacja transmisji w czasie rzeczywistym wielu równolegle przebiegających aplikacji sieciowych przez jedno i to samo medium transmisyjne. Wielkość stosowanych buforów pamięci, dobór odpowiednich algorytmów priorytetowania usług (np. algorytm „cieknące wiadro”), a w szczególności właściwy rozmiar pakietów głosowych stanowią obecnie największe wyzwanie wynikające z wymagań czasu rzeczywistego dla trafiku głosowego i innego ruchu multimedialnego (rys. 2).

Aby utrzymać odpowiednią jakość pakietowej konwersji głosowej i mieć ponadto możliwość sterowania tą jakością, w miejscu przeznaczenia jest potrzebny bufor jitter, umożliwiający odczekanie w niewielkim zakresie na spóźnione bądź brakujące pakiety głosowe. Dopiero po skompletowaniu odpowiedniej liczby przybywających pakietów, dokonuje się ich dekompresja i konwersja z powrotem na sygnał analogowy. Ta zdolność do dynamicznej optymalizacji jakości głosu przez adaptację algorytmu konwersji do fizycznych warunków transmisji (po co czekać niepotrzebnie, jeśli cały głos już przybył) jest najwyżej cenioną cechą nowoczesnych koderów głosowych. Standardowo opóźnienie jitter powinno się zmieniać w granicach 50-150 ms dla przekazów głosowych o wysokiej jakości.

Głos w pakietach

Tabela 2. Porównanie szerokości pasma dla głosu i danych (z kompresją)

Niestety średnia wartość tego opóźnienia w Internecie znacznie jeszcze przekracza dopuszczalne granice i oscyluje w przedziale 400-500 ms przy transmisjach dwukierunkowych, co utrudnia prowadzenie rozmów bezpośrednich. Wśród wielu przyczyn tych opóźnień istotny wpływ wywierają: różnorodne algorytmy konwersji sygnału analogowego na cyfrowy, procedury kapsułkowania pakietów głosowych na pakiety IP i opóźnienia wprowadzane przez kolejne routery na trasie przekazu (nie mniej niż 20 ms na jeden hop).

Badania i praktyka wskazują, że ucho ludzkie dobrze toleruje zarówno rozsądny stopień utraty pakietów głosowych, jak i zmiany opóźnienia głosu w szerokich granicach. W trakcie przekazów głosowych opóźnienie sygnałów mowy poniżej 50 ms jest prawie niezauważalne, opóźnienia do 150 ms utrudniają konwersację, a słaba jakość rozmowy zaczyna się dopiero przy opóźnieniach ok. 500 ms (licząc łącznie w obydwu kierunkach przekazu). Z kolei akceptowalną jakość głosu uzyskuje się przy stratach pakietów poniżej 5 proc., a niedopuszczalna jakość, objawiająca się brakiem zrozumienia mowy, zaczyna się przy utracie powyżej 15 proc. ogólnej liczby przesłanych pakietów głosowych.


TOP 200