Kodek GSM
Z Wikipedii
Kodek GSM jest implementacją jednego ze standardów (HR, FR, EFR, AMR - zobacz rozdział poniżej) kodowania i dekodowania głosu w systemie telefonii GSM. Charakteryzują się one niskimi wymaganiami związanymi z prędkością transmisji przy akceptowalnej jakości zakodowanej mowy, oraz stosunkowo niewielką złożonością obliczeniową potrzebną do kodowania dźwięku. Ten fakt, oraz otwartość standardu (i związany z nim brak opłat licencyjnych) przyczynił się do popularności tego typu rozwiązań także w transmisji VoIP.
Spis treści |
[edytuj] Główna idea
Mowa ludzka jest generowana przez układ krtani, nosa, języka i zębów. Okazuje się, że w ciągu 20 ms nie zmienia się on na tyle aby miało to wpływ na zmianę dźwięku wyczuwalną przez ucho. Główna idea polega na zapisaniu tych 20 ms "nie zmieniającego się w czasie dźwięku" za pomocą jednego, niewielkiego zbioru parametrów.
[edytuj] Rodzaje kodeków GSM
Kodek GSM bazuje na dźwięku próbkowanym z częstotliwością 8 [kHz] (każda próbka zapisywana jest za pomocą 13 bitów). 20 ms tak zapisanej rozmowy to 160 (8000 [1/s] * 0.02 [s]) 13 bitowych próbek. Taki blok 160 próbek jest kodowany za pomocą opisanych poniżej kodeków.
[edytuj] Half Rate (HR) codec
Podczas kodowania jeden segment 20 ms rozmowy (160 próbek) zamieniany jest na zbiór parametrów o łącznej długości 112 bitów (analogiczna akcja (112 bitów->160 próbek) związana jest z dekodowaniem). Ponieważ w ciągu sekundy kodowanych jest 50 takich segmentów (8000/160) osiągana prędkość transmisji to 5,6 kbit/s (112*50).
Algorytm używany do kodowania/dekodowania to VSELP (Vector-Sum Excited Linear Prediction).
[edytuj] Full Rate (FR) codec
Kodek zamienia jeden segment 20 ms rozmowy (160 próbek) na zbiór parametrów o łącznej długości 260 bitów (analogiczna akcja (260 bitów->160 próbek) związana jest z dekodowaniem). Ponieważ w ciągu sekundy kodowanych jest 50 takich segmentów (8000/160) osiągana prędkość transmisji to 13 Kbit/s (260*50).
Algorytm używany do kodowania/dekodowania to Regular Pulse Excitation - Long Term prediction Linear Predictive Coder (RPE-LTP).
[edytuj] Enhanced Full Rate (EFR) codec
Kodek zamienia jeden segment 20 ms rozmowy (160 próbek) na zbiór parametrów o łącznej długości 244 bitów (analogiczna akcja (244 bitów->160 próbek) związana jest z dekodowaniem). Ponieważ w ciągu sekundy kodowanych jest 50 takich segmentów (8000/160) osiągana prędkość transmisji to 12,2 kbit/s (244*50).
Pomimo mniejszej szybkości transmisji, kodowana w ten sposób rozmowa ma lepszą jakość niż ta zakodowana przez FR kodek. Dzieje się tak, dzięki użyciu metody kodowania Algebraic-Code-Excited Linear Predictive (ACELP).
[edytuj] Adaptive Multi Rate (AMR) codec
Kodek ten wykorzystuje metodę Algebraic-Code-Excited Linear Predictive (ACELP) używaną też w kodeku EFR. Dzięki wykorzystaniu różnych współczynników kompresji potrafi zamieniać bloki 160 próbek na odpowiednio: 95, 103, 118, 134, 148, 159, 204 i 244 bity, dzięki czemu uzyskiwana prędkość transmisji to 4.75, 5.15, 5.90, 6.70, 7.40, 7.95, 10.2 lub 12.2 kbit/s.
[edytuj] Użycie kodeków w telefonach komórkowych
W sieci GSM transmisja na każdej z dostępnych częstotliwości podzielona jest na 8 szczelin czasowych. Telefon komórkowy może zająć całą szczelinę czasową (8 rozmów na jednej częstotliwości) lub jej pół (16 rozmów). W tym drugim przypadku konieczne jest ograniczenie ilości przesyłanych danych, a więc i jakości dźwięku.
- W początkowych etapach rozwoju sieci były dostępne dwa tryby kodowania rozmowy: za pomocą kodeków Half Rate (HR) (ilość danych umożliwiająca zajęcie pół szczeliny czasowej) i Full Rate (FR) (rozmowa zajmuje całą szczelinę czasową).
- Obecnie, nowe modele telefonów mają również zaimplementowane kodeki Enhanced Full Rate (EFR), dzięki którym rozmowa alokowana w całej szczelinie czasowej ma jakość lepszą niż w przypadku kodeków FR, lub Adaptive Multi Rate (AMR), które potrafią zmieniać prędkość transmisji i alokować rozmowę w połowie lub w całej szczelinie czasowej. Telefony posiadające te nowe rodzaje kodeków, potrafią też nadawać/odbierać w standardzie HR i FR, gdyż nie wszystkie sieci wspierają system kodowania AMR (i EFR który jest kompatybilny z AMR w jej maksymalnej prędkości transmisji).
To, który z kodeków zostanie wybrany przez telefon, zależy od Kontrolera Stacji Bazowej, który przyzna całą lub pół szczeliny czasowej na rozmowę w zależności od zajętości sieci w komórce (ang. cell) w której znajduje się abonent.