G.711 - G.711

G.711
Modulacja kodu impulsowego (PCM) częstotliwości głosu
Pcm.svg
Status Obowiązujący
Rok rozpoczęty 1972
Ostatnia wersja (02/00)
luty 2000
Organizacja ITU-T
Powiązane standardy G.191 , G.711.0 , G.711.1 , G.729
Domena kompresja dźwięku
Strona internetowa https://www.itu.int/rec/T-REC-G.711

G.711 to wąskopasmowy kodek audio oryginalnie zaprojektowany do użytku w telefonii, który zapewnia dźwięk o jakości płatnej przy 64 kbit/s. G.711 przepuszcza sygnały audio w zakresie 300–3400 Hz i próbkuje je z szybkością 8000 próbek na sekundę, z tolerancją 50 części na milion (ppm). Niejednolita (logarytmiczna) kwantyzacja z 8 bitami jest używana do reprezentowania każdej próbki, co daje szybkość transmisji 64 kbit/s. Istnieją dwie nieco różne wersje: μ-law , która jest używana głównie w Ameryce Północnej i Japonii oraz A-law , która jest używana w większości innych krajów poza Ameryką Północną.

G.711 to standard ITU-T (zalecenie) dotyczący kompandowania dźwięku , zatytułowany modulacja kodem impulsowym (PCM) częstotliwości głosu wprowadzony do użytku w 1972 roku. Jest to wymagany standard w wielu technologiach, takich jak H.320 i H .323 normy. Może być również używany do komunikacji faksowej przez sieci IP (zgodnie z definicją w specyfikacji T.38 ).

Opublikowano dwa ulepszenia G.711: G.711.0 wykorzystuje bezstratną kompresję danych w celu zmniejszenia wykorzystania przepustowości, a G.711.1 zwiększa jakość dźwięku poprzez zwiększenie przepustowości.

Cechy

Rodzaje

G.711 definiuje dwa główne Companding algorytmów, na algorytm μ-prawo i algorytm A-law . Oba są logarytmiczne , ale A-law został specjalnie zaprojektowany, aby był łatwiejszy do przetworzenia przez komputer. Norma definiuje również sekwencję powtarzających się wartości kodu, która określa poziom mocy 0 dB .

Algorytmy μ-law i A-law kodują 14-bitowe i 13-bitowe liniowe próbki PCM ze znakiem (odpowiednio) do logarytmicznych próbek 8-bitowych. W ten sposób koder G.711 utworzy strumień bitów 64 kbit/s dla sygnału próbkowanego z częstotliwością 8 kHz.

G.711 μ-law zapewnia większą rozdzielczość sygnałom o wyższym zakresie, podczas gdy G.711 A-law zapewnia więcej poziomów kwantyzacji przy niższych poziomach sygnału.

Stosowane są terminy PCMU, G711u lub G711MU dla G711 μ-law oraz PCMA lub G711A dla G711 A-law.

Prawo

Kodowanie A-law pobiera zatem 13-bitową liniową próbkę audio ze znakiem jako dane wejściowe i konwertuje ją na wartość 8-bitową w następujący sposób:

Kod wejścia liniowego
Skompresowany kod
XOR 01010101
Kod wyjścia liniowego
s0000000abcdx s 000abcd s0000000abcd1
s0000001abcdx s 001abcd s0000001abcd1
s000001abcdxx s 010abcd s000001abcd10
s00001abcdxxx s 011abcd s00001abcd100
s0001abcdxxxx s 100abcd s0001abcd1000
s001abcdxxxxx s 101abcd s001abcd10000
s01abcdxxxxxx s 110abcd s01abcd100000
s1abcdxxxxxxx s 111abcd s1abcd1000000
  1. ^ Ta wartość jest tworzona przez wzięciereprezentacji uzupełnienia do dwóch wartości wejściowej i odwrócenie wszystkich bitów po bicie znaku, jeśli wartość jest ujemna.
  2. ^ Podpisana reprezentacja wielkości

Gdzie sjest bit znaku, sjest jego odwrotnością (tj. wartości dodatnie są kodowane z MSB  =  s  = 1), a oznaczone bity xsą odrzucane. Zauważ, że pierwsza kolumna tabeli używa innej reprezentacji wartości ujemnych niż trzecia kolumna. Na przykład wejściowa wartość dziesiętna −21 jest reprezentowana binarnie po odwróceniu bitów jako 1000000010100, co odpowiada 00001010 (zgodnie z pierwszym wierszem tabeli). Podczas dekodowania odwzorowuje się z powrotem na 1000000010101, co jest interpretowane jako wartość wyjściowa −21 w postaci dziesiętnej. Wartość wejściowa +52 (0000000110100 binarnie) mapuje na 10011010 (zgodnie z drugim rzędem), który mapuje z powrotem na 0000000110101 (+53 dziesiętnie).

Można to postrzegać jako liczbę zmiennoprzecinkową z 4 bitami mantysy m (odpowiednik 5-bitowej precyzji), 3 bitami wykładnika e i 1 bitem znaku s , sformatowaną tak, jak seeemmmmdekodowana wartość liniowa y podana wzorem

która jest 13-bitową liczbą całkowitą ze znakiem w zakresie od ±1 do ±(2 12  - 2 6 ). Zauważ, że żaden skompresowany kod nie dekoduje do zera z powodu dodania 0.5 (połowa kroku kwantyzacji).

Ponadto norma określa, że ​​wszystkie wynikowe bity parzyste ( LSB jest parzyste) są odwracane przed przesłaniem oktetu. Ma to na celu zapewnienie wielu przejść 0/1, aby ułatwić proces odzyskiwania zegara w odbiornikach PCM. Tak więc, cichy kanał PCM zakodowany według A-law ma 8-bitowe próbki zakodowane w oktetach 0xD5 zamiast 0x80.

Gdy dane są przesyłane przez E0 ( G.703 ), MSB (znak) jest wysyłany jako pierwszy, a LSB jako ostatni.

ITU-T STL definiuje algorytm dekodowania w następujący sposób (umieszcza zdekodowane wartości w 13 najbardziej znaczących bitach 16-bitowego typu danych wyjściowych).

void            alaw_expand(lseg, logbuf, linbuf)
  long            lseg;
  short          *linbuf;
  short          *logbuf;
{
  short           ix, mant, iexp;
  long            n;

  for (n = 0; n < lseg; n++)
  {
    ix = logbuf[n] ^ (0x0055);	/* re-toggle toggled bits */

    ix &= (0x007F);		/* remove sign bit */
    iexp = ix >> 4;		/* extract exponent */
    mant = ix & (0x000F);	/* now get mantissa */
    if (iexp > 0)
      mant = mant + 16;		/* add leading '1', if exponent > 0 */

    mant = (mant << 4) + (0x0008);	/* now mantissa left justified and */
    /* 1/2 quantization step added */
    if (iexp > 1)		/* now left shift according exponent */
      mant = mant << (iexp - 1);

    linbuf[n] = logbuf[n] > 127	/* invert, if negative sample */
      ? mant
      : -mant;
  }
}

Patrz również „Podręcznik użytkownika biblioteki narzędzi oprogramowania ITU-T 2009”, który można znaleźć pod adresem.

μ-prawo

Kodowanie μ-law (czasami określane jako ulaw, G.711Mu lub G.711μ) pobiera 14-bitową liniową próbkę audio ze znakiem w reprezentacji uzupełnienia do dwóch jako dane wejściowe, odwraca wszystkie bity po bicie znaku, jeśli wartość jest ujemna, dodaje 33 (binarny 100001) i konwertuje je na wartość 8-bitową w następujący sposób:

Wartość wejściowa liniowa
Skompresowany kod
XOR 11111111
Liniowa wartość wyjściowa
s0000001abcdx s000abcd s0000001abcd1
s0000001abcdxx s001abcd s0000001abcd10
s000001abcdxxx s010abcd s000001abcd100
s00001abcdxxxx s011abcd s00001abcd1000
s0001abcdxxxxx s100abcd s0001abcd10000
s001abcdxxxxxx s101abcd s001abcd100000
s01abcdxxxxxxx s110abcd s01abcd1000000
s1abcdxxxxxxxx s111abcd s1abcd10000000
  1. ^ Ta wartość jest tworzona przez wzięciereprezentacji uzupełnienia do dwóch wartości wejściowej, odwrócenie wszystkich bitów po bicie znaku, jeśli wartość jest ujemna, i dodanie 33.
  2. ^ Podpisana reprezentacja wielkości . Ostateczny wynik uzyskuje się zmniejszając wielkość tej wartości o 33.

Gdzie sjest bit znaku, a zaznaczone bity xsą odrzucane.

Ponadto standard określa, że ​​zakodowane bity są odwracane przed przesłaniem oktetu. Tak więc cichy kanał PCM zakodowany zgodnie z prawem μ ma 8-bitowe próbki przesyłane w oktetach 0xFF zamiast 0x00.

Dodanie 33 jest konieczne, aby wszystkie wartości znalazły się w grupie kompresji i są one odejmowane podczas dekodowania.

Rozbicie zakodowanej wartości sformatowanej jako seeemmmm4 bity mantysy m , 3 bity wykładnika e i 1 bit znaku s , dekodowana wartość liniowa y jest dana wzorem

która jest 14-bitową liczbą całkowitą ze znakiem w zakresie od ±0 do ±8031.

Zauważ, że 0 jest przesyłane jako 0xFF, a -1 jest przesyłane jako 0x7F, ale po otrzymaniu wynik jest równy 0 w obu przypadkach.

G.711.0

G.711.0, znany również jako G.711 LLC, wykorzystuje bezstratną kompresję danych, aby zmniejszyć wykorzystanie przepustowości nawet o 50 procent. Kompresji bezstratnej G.711 kodu modulacji impulsów standardu została zatwierdzona przez ITU-T we wrześniu 2009 roku.

G.711.1

G.711.1 jest rozszerzeniem G.711, opublikowanym jako zalecenie ITU-T G.711.1 w marcu 2008. Jego formalna nazwa to szerokopasmowe wbudowane rozszerzenie dla modulacji kodu impulsowego G.711 .

G.711.1, umożliwia dodanie ulepszeń wąskopasmowych i/lub szerokopasmowych (16000 próbek/s), każde przy 25% szybkości transmisji (w zestawie) podstawowego strumienia bitów G.711, co prowadzi do szybkości transmisji danych 64, 80 lub 96 kbit /s.

G.711.1 jest kompatybilny z G.711 przy 64 kbit/s, dlatego przewiduje się wydajne wdrożenie w istniejących infrastrukturach Voice over IP ( VoIP ) opartych na G.711 . Koder G.711.1 może kodować sygnały o częstotliwości 16 kHz z szerokością pasma 50–7000 Hz przy 80 i 96 kbit/s, a przy próbkowaniu 8 kHz wyjście może generować sygnały o szerokości pasma od 50 do 4000 Hz, pracując przy 64 i 80 kbit/s.

Koder G.711.1 tworzy osadzony strumień bitów złożony z trzech warstw odpowiadających trzem dostępnym przepływnościom: 64, 80 i 96 kbit/s. Strumień bitów nie zawiera żadnych informacji o tym, które warstwy są zawarte, implementacja wymagałaby sygnalizacji pozapasmowej, na których warstwy są dostępne. Trzy warstwy G.711.1 to: log Companded Pulse Code Modulation (PCM) dolnego pasma, w tym sprzężenie zwrotne szumu, wbudowane rozszerzenie PCM z adaptacyjną alokacją bitów w celu poprawy jakości warstwy bazowej w dolnym paśmie oraz ważone kodowanie kwantyzacji wektorowej wyższe pasmo oparte na zmodyfikowanej dyskretnej transformacji kosinusowej (MDCT).

W 2010 roku planowane są dwa rozszerzenia dla G.711.1: rozszerzenie superwideband (przepustowość do 14000 Hz) oraz bezstratna kompresja strumienia bitów.

Koncesjonowanie

Patenty na G.711, wydane w 1972 roku, wygasły, więc można z niego korzystać bez konieczności posiadania licencji.

Zobacz też

Bibliografia

  1. ^ a b c „G.711: modulacja kodu impulsowego (PCM) częstotliwości głosu” . www.itu.int . Zarchiwizowane od oryginału dnia 2019-06-17 . Pobrano 11.11.2019 .
  2. ^ „Kodeki wideo/głosu/mowy” . Grandstream= . Źródło 19 lipca 2020 .
  3. ^ G.191 : Narzędzia programowe do standaryzacji kodowania mowy i dźwięku . Funkcjaalaw_expandw plikuSoftware/stl2009/g711/g711.c. Itu.int. Pobrano 18.09.2013.
  4. ^ G.191 : Biblioteka narzędzi oprogramowania ITU-T 2009 Instrukcja obsługi . Itu.int (23.07.2010). Pobrano 18.09.2013.
  5. ^ ITU-T (17.07.2009). "ITU-T Newslog - kodek głosowy otrzymuje nową kompresję bezstratną" . Zarchiwizowane od oryginału w dniu 2016-03-03 . Źródło 2010-02-28 .
  6. ^ ITU-T. "G.711.0: Bezstratna kompresja modulacji kodu impulsowego G.711" . Źródło 2010-02-28 .
  7. ^ a b Najnowsze osiągnięcia w zakresie kodowania audio/mowy w ITU-T i przyszłych trendach (PDF) , sierpień 2008 , pobrane 28.02.2010
  8. ^ a b c ITU-T (2008) G.711.1: szerokopasmowe wbudowane rozszerzenie dla modulacji kodu impulsowego G.711 Źródło: 2009-06-19
  9. ^ Hiwasaki; i in. (2008-08-25), G.711.1: szerokopasmowe rozszerzenie do ITU-T G.711 (PDF) , pobrane 2015-06-13
  10. ^ Lapierre; i in. (2008-08-25), Kształtowanie szumu we wbudowanym kodeku ITU-T G.711-Interoperable (PDF) , pobrane 2015-06-13
  11. ^ Nokia Research Center (2009-04-06), standardy kodowania (PDF) , pobrane 2010-03-01

Zewnętrzne linki