Ograniczenie kwantyzacji liniowej
Przed omówieniem kompandowania trzeba wskazać problem, który ten proces ma ograniczać. W standardowym systemie PCM stosuje się . Działa to dobrze dla sygnałów o jednolitym rozkładzie, lecz jest nieefektywne dla sygnałów o dużym , takich jak ludzka mowa.
Rozmowa może obejmować szept i krzyk. Kwantyzacja liniowa stosuje dla obu poziomów ten sam krok. Przy krzyku błąd jest mały względem amplitudy, więc zwykle pozostaje mało zauważalny. Przy szeptach ten błąd może mieć wartość zbliżoną do samego sygnału, obniżając jakość i zwiększając słyszalność szumu. Słuch jest bardziej wrażliwy na zakłócenia w cichych fragmentach. Stały poziom błędu pogarsza więc stosunek sygnału do szumu kwantyzacji (SQNR) dla sygnałów o małej amplitudzie.
Kompandowanie
Kompandowanie to termin łączący dwa etapy: kompresję sygnału w nadajniku i jego ekspandowanie, czyli rozprężanie, w odbiorniku. Jest to nieliniowe przekształcenie zaprojektowane w celu poprawy SQNR dla sygnałów o dużym zakresie dynamiki, takich jak głos.
Przebieg kompandowania
Zakres dynamiki sygnału jest kształtowany przed kwantyzacją. W nadajniku kompresor wzmacnia ciche sygnały o małej amplitudzie silniej niż sygnały głośne. Zmniejsza to rozpiętość amplitud i oddala słabe części sygnału od poziomu błędu kwantyzacji. Następnie sygnał jest kwantowany liniowo. W odbiorniku ekspander wykonuje operację odwrotną. Tłumi ciche fragmenty silniej niż głośne i odtwarza pierwotny zakres dynamiki.
Krzywa kompresji
Nieliniowe zachowanie kompresora opisuje jego funkcja przejścia, nazywana krzywą kompresji. Wykres przedstawia zależność amplitudy wyjściowej od amplitudy wejściowej.
Dla sygnału wejściowego i wyjściowego układ liniowy miałby postać . Krzywa kompresji ma kształt logarytmiczny. Dla małych wartości wejściowych w pobliżu zera jej nachylenie jest większe, co oznacza silniejsze wzmocnienie. Gdy amplituda wejściowa rośnie, nachylenie maleje, więc wzmocnienie jest mniejsze. Ciche dźwięki są wtedy przesuwane dalej od poziomu błędu kwantyzacji, a poziomy głośne otrzymują mniejsze wzmocnienie.
Prawa kompandowania A-law i µ-law
Zalecenie ITU-T G.711 definiuje dwa prawa kompandowania używane w cyfrowych systemach telefonicznych: A-law i µ-law.
- Prawo A (A-law): Stosowane głównie w Europie oraz w wielu innych sieciach. Gdy sieci w różnych krajach używają różnych praw, G.711 wskazuje A-law dla połączenia międzynarodowego. W pobliżu zera prawo A ma odcinek liniowy. Jego parametr kompresji wynosi .
Poniższy wzór opisuje moduł wyjścia dla znormalizowanego modułu wejścia : - Prawo µ (µ-law): Stosowane głównie w Ameryce Północnej i Japonii. Ma nieco większy zakres dynamiki niż prawo A. Jego parametr kompresji wynosi .
Poniższy wzór opisuje moduł wyjścia dla znormalizowanego modułu wejścia :
Implementacja cyfrowa: aproksymacja odcinkowo-liniowa
Implementacja gładkiej krzywej logarytmicznej w sprzęcie cyfrowym jest złożona. W praktyce krzywe prawa A i µ aproksymuje się serią odcinków liniowych. Przykładowa implementacja może mapować 12-bitowy liniowy sygnał PCM na specjalny 8-bitowy format skompandowany. W G.711 prawo A opisuje się także przez mapowanie 13-bitowego jednolitego kodu PCM na 8-bitowe słowo, a prawo µ korzysta z 14-bitowego kodu jednolitego.
Zakres sygnału jest podzielony na segmenty, na przykład 8 dodatnich i 8 ujemnych dla prawa A. Segmenty w pobliżu zera są węższe, więc mają mniejsze kroki kwantyzacji i lepiej odwzorowują ciche dźwięki. Wraz ze wzrostem amplitudy segmenty stają się szersze, a kroki większe, ponieważ błąd dla głośniejszych dźwięków jest mniej zauważalny.
Format 8-bitowego słowa skompandowanego
W uproszczonym opisie pól wynikowe 8-bitowe słowo koduje te informacje w trzech polach:
- 1 bit: Bit znaku (dodatni lub ujemny).
- 3 bity: Identyfikator segmentu, do którego z 8 segmentów należy próbka.
- 4 bity: Konkretny poziom kwantyzacji (jeden z 16) wewnątrz danego segmentu.
Rezultat: większa efektywność kodowania
W zastosowaniach mowy 8-bitowy system PCM z kompandowaniem może osiągać zakres dynamiki i SQNR porównywalne z 12- lub 13-bitowym liniowym PCM, zależnie od implementacji. G.711 wykorzystuje 8 bitów na próbkę, co przy częstotliwości 8000 próbek na sekundę daje kanał głosowy o przepływności 64 kb/s.
8000 próbek/sekundę × 8 bitów/próbkę = 64 000 bitów/sekundę (64 kb/s)
Przepływność 64 kb/s jest stosowana w cyfrowej telefonii, między innymi w kanałach głosowych ISDN.