Kodek GSM jest implementacją jednego ze standardów (HR, FR, EFR, AMR) 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.
Główna idea
[edytuj | edytuj kod]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.
Rodzaje kodeków GSM
[edytuj | edytuj kod]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.
Half Rate (HR) codec
[edytuj | edytuj kod]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).
Full Rate (FR) codec
[edytuj | edytuj kod]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).
Enhanced Full Rate (EFR) codec
[edytuj | edytuj kod]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).
Adaptive Multi Rate (AMR) codec
[edytuj | edytuj kod]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.
Adaptive Multi Rate – WideBand (AMR-WB) codec
[edytuj | edytuj kod]Kodek bardzo podobny w działaniu i budowie do AMR. Umożliwia uzyskiwanie lepszej jakości dźwięku i szerszym spektrum. Uzyskiwane prędkości transmisji to 6,60; 8,85 (dla słabego połączenia radiowego) i 12,65 (porównywalne do G.722 dla 56 kbit/s) a także 14,25; 15,85; 18,25; 19,85; 23,05; 23,85 (dwa ostatnie nie używane dla GSM) kbit/s.
Użycie kodeków w telefonach komórkowych
[edytuj | edytuj kod]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).
- Pierwszą siecią która wprowadziła AMR-WB była sieć T-Mobile w Niemczech w roku 2006.
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.
Zobacz też
[edytuj | edytuj kod]Linki zewnętrzne
[edytuj | edytuj kod]- 3GPP TS 06.20 Half Rate Speech Transcoding
- 3GPP TS 06.10 Full Rate Speech Transcoding
- 3GPP TS 06.60 Enhanced full rate speech transcoding
- 3GPP TS 06.90 Adaptive Multi-Rate speech transcoding
- ITU-T Recommendation G.722.2; (AMR-WB)- technical specification
- Adaptive Multi-Rate - Wideband (AMR-WB) speech codec; Transcoding functions; 3GPP TS 26.190 - 3GPP technical specification