G. 729 rodzina kodeków o niskiej przepływności (VoIP)
3.6
rodzina kodeków G. 729 jest powszechnie używana w większości wdrożeń VoIP. G. 729 jest rekomendacją ITU – T G. 729 dla algorytmu kompresji mowy o sprzężonej strukturze algebraicznej kodu wzbudzonego liniowo (CS-ACELP)
. G. 729 wykorzystuje modele ludzkiego układu głosowego odpowiednie dla sygnałów głosowych w przeciwieństwie do kodeków G. 711 i G. 726, które wykorzystują kompresję opartą na falach. Basic G. 729 kompresuje głos do 8 kbps, co zapewnia ośmiokrotnie większą kompresję niż G. 711 i zapewnia dobrą jakość głosu.
G. 729729a) to wersja rekomendacji G. 729 o obniżonej złożoności, która kompresuje głos do tych samych 8 kbps z niewielką stratą jakości w porównaniu z G. 729. Ta wersja jest rozwijana głównie dla multimedialnych jednoczesnych aplikacji głosowych i danych, chociaż użycie kodeka nie ogranicza się do tych aplikacji. G. 729A jest Bit stream współdziałający z pełną wersją G. 729. Ten kodek ma wbudowane ukrywanie utraty pakietów. Kodek z przyrostkiem B oznaczony jako G. 729b lub G. 729ab obsługuje VAD w koderze i CNG w dekoderze . G.729 ma szeroką rodzinę kodeków, a niektóre z popularnych kodeków
są wymienione w tabeli 3.3. We wdrażaniu VoIP popularnie używany jest G. 729AB. W aktualizacji Szerokopasmowej kodeki te mogą zostać zastąpione przez G. 729.1. Te kodeki szerokopasmowe są kompatybilne z wersjami wąskopasmowymi. W związku z tym sam kodek szerokopasmowy powinien być wystarczający zarówno do obsługi szerokopasmowego, jak i wąskopasmowego pasma 8 kbps. Z wyjątkiem G. 722, inne kodeki szerokopasmowe kompresują głos do prędkości bitowej niższej niż G. 711. W poniższej sekcji przedstawiono ogólny przegląd G. 729AB. Kodek G. 729ab wykorzystuje G. 729 jako standard bazowy. Aby lepiej zrozumieć G. 729AB, zapoznaj się z zaleceniami G. 729, G. 729b i G. 729A.
tabela 3.3. ITU-T G. 729 Rodzina wąskopasmowych i szerokopasmowych kodeków mowy
Nazwa kodeka | opis | zastosowanie |
G. 729 | Basic 8-kbps CS – | obsługiwane na głos VoIP |
kodek mowy ACELP | ||
G. 729b | G.729 z milczeniem | |
kompresja | ||
G. 729A | zredukowana złożoność | popularne na przejściówkach VoIP i IP |
8 – telefony kbps CS – ACELP | , kompatybilne z G. 729, | |
kodek mowy | i G. 729.1 | |
G. 729AB | G. 729A z ciszą | kompatybilny z G. 729, G729B, |
kompresja | G729.1 | |
G. 729E (G.729 | 11.8 – kbps CS-ACELP | Nie popularny w VoIP, działa lepiej |
załącznik E) | kodowanie mowy | dla muzyki i tła oraz |
algorytm | jest używany w aplikacjach wideo | |
G. 729. 1 wideband | Wbudowana zmienna 8 – | Wideband voice |
i wąskopasmowe | 32 kbps, bity | |
interoperacyjny z | ||
G. 729, G.729A |
kodek G. 729
kodek G. 729 składa się z osobnego kodera i dekodera. Kodek kompresuje próbki mowy jako ramki za pomocą procedury analizy przez syntezę CS-ACELP. Kodek pracuje z ramkami 10 ms z podglądem przed 5 ms, co skutkuje całkowitym algorytmicznym opóźnieniem 15 ms. przegląd kodera i dekodera podano w odniesieniu do rys. 3.4.
rysunek 3.4. Kodek G. 729. a) kompresja kodera. (b) dekoder-dekompresja z ITU-T-G. 729 — przerysowane z pewnym uproszczeniem.
Koder G. 729. Koder G. 729 jest oparty na modelu kodowania z wzbudzeniem liniowym (ang. code-excited linear-prediction, CELP). Dla każdej klatki 10 ms sygnał mowy jest analizowany w celu wyodrębnienia parametrów modelu CELP. Parametrami są liniowe współczynniki filtra predykcyjnego kodowane jako pary widmowe linii, indeksy adaptacyjne i kodetopowe oraz przyrosty. Parametry te są kodowane i przesyłane jako ładunek do aplikacji VoIP. Jak pokazano na Fig. 3.4, wstępnie przetworzona mowa jest analizowana pod kątem współczynników filtra LP. Współczynniki te są konwertowane na liniowe pary widma (LSP) i kwantyzowane przy użyciu predykcyjnej dwuetapowej kwantyzacji wektorowej (VQ). Estymacja skoku open-oop jest obliczana dla każdej klatki 10 ms na podstawie ważonego percepcyjnie sygnału mowy. Analiza Skoku w pętli zamkniętej jest wykonywana przy użyciu sygnału docelowego i odpowiedzi impulsowej, przeszukując wartość opóźnienia skoku open-l oop. Nowy sygnał docelowy jest obliczany i wykorzystywany w stałym poszukiwaniu kodetopowym, aby uzyskać optymalne wzbudzenie. Zyski z adaptacyjnych i stałych wkładów kodetopowych są kwantyzowane wektorowo. Na koniec pamięć filtra jest aktualizowana za pomocą ustalonego sygnału wzbudzenia. Na każde 80 próbek wejściowych koder daje 10 bajtów skompresowanego wyjścia, co daje całkowitą szybkość transmisji 8 kbps. Te 10 bajtów składa się z kilku parametrów wymienionych w tabeli 3.4. Z tabeli można zauważyć, że kodowanie G. 729 dzieli parametry na kilka klas, z których każda ma kilka bitów. Całkowicie różni się od Kompresji G. 711 i G. 726. Aby uzyskać więcej informacji na temat kodowania i parametrów, o których mowa w tabeli 3.4 Zobacz .
Dekoder G. 729. Dekoder G. 729 przedstawiono na Rys. 3.4 lit. b). Dekoder generuje 80 próbek 16-bitowych liniowych wartości PCM na każde 80 bitów (10 bajtów) danych. Parametrami wejściowymi dekodera są współczynniki LSP, dwa opóźnienia skoku ułamkowego, dwa wektory o stałym kodetopii oraz dwa zestawy adaptacyjnych i stałych przyrostów kodetopii. Początkowo współczynniki LSP są interpolowane i konwertowane na współczynniki filtra LP dla każdej ramy pomocniczej. Dla każdej 5-ms ramki pomocniczej wzbudzenie jest konstruowane przez dodanie adaptacyjnych i stałych wektorów kodetopowych.
Tabela 3.4. G.729 parametry kodera i skompresowana alokacja bitów dla ramki 10 ms
Nazwa parametru | słowo kodowe | Ramka podrzędna 1 | Ramka podrzędna 2 | całkowita bity na Ramka |
pary widma linii (LSP) | L0, L1, L2, L3 | 18 | ||
Adaptive codetopic delay | P1, P2 | 8 | 5 | 13 |
parzystość opóźnienia Skoku | P0 | 1 | 1 | |
Poprawiono indeks kodetowy | C1, C2 | 13 | 13 | 26 |
Poprawiono znak kodowy | S1, S2 | 4 | 4 | 8 |
kodetopic zyski na etapie-1 | GA1, GA2 | 3 | 3 | 6 |
codetopic zyskuje na etapie-2 | GB1, GB2 | 4 | 4 | 8 |
suma bitów w ramce 10 ms | 80 |
mowa jest rekonstruowana przez filtrowanie wzbudzenie przez filtr syntezy LP. Rekonstruowana mowa jest przetwarzana przez etap postprocessingu, który obejmuje adaptacyjny filtr postprocesowy oparty na filtrach syntezy długo-i krótkoterminowej, a następnie filtr górnoprzepustowy i operację skalowania.
oprócz algorytmicznego opóźnienia 15 ms, opóźnienia mogą być możliwe ze względu na czas wykonania algorytmów kodera i dekodera w procesorze. W zależności od implementacji, podczas przetwarzania kilku kanałów na jednym procesorze, opóźnienie wzrasta dla ostatniego przetworzonego kanału.
Leave a Reply