G.711 - G.711
Pulzní kódová modulace (PCM) hlasových frekvencí | |
Postavení | V platnosti |
---|---|
Rok začal | 1972 |
Nejnovější verze | (02/00) Únor 2000 |
Organizace | ITU-T |
Související standardy | G.191 , G.711.0 , G.711.1 , G.729 |
Doména | komprese zvuku |
webová stránka | https://www.itu.int/rec/T-REC-G.711 |
Formáty s pohyblivou řádovou čárkou |
---|
IEEE 754 |
jiný |
G.711 je úzkopásmový zvukový kodek původně navržený pro použití v telefonii, který poskytuje zvuk v mýtné kvalitě rychlostí 64 kbit/s. G.711 předává zvukové signály v rozsahu 300–3 400 Hz a vzorkuje je rychlostí 8 000 vzorků za sekundu s tolerancí této rychlosti 50 dílů na milion (ppm). Pro reprezentaci každého vzorku je použita nejednotná (logaritmická) kvantizace s 8 bity, což má za následek bitovou rychlost 64 kbit/s. Existují dvě mírně odlišné verze: μ-law , který se používá především v Severní Americe a Japonsku, a A-law , který se používá ve většině ostatních zemí mimo Severní Ameriku.
G.711 je standard ITU-T (doporučení) pro zvukové kompandování s názvem Pulzní kódová modulace (PCM) hlasových frekvencí vydaný pro použití v roce 1972. Je požadovaným standardem v mnoha technologiích, například v H.320 a H .323 standardy. Lze jej také použít pro faxovou komunikaci přes sítě IP (jak je definováno ve specifikaci T.38 ).
Byla publikována dvě vylepšení G.711: G.711.0 využívá bezeztrátovou kompresi dat ke snížení využití šířky pásma a G.711.1 zvyšuje kvalitu zvuku zvýšením šířky pásma.
Funkce
- Vzorkovací frekvence 8 kHz
- 64 kbit/s bitrate (vzorkovací frekvence 8 kHz × 8 bitů na vzorek)
- Typické algoritmické zpoždění je 0,125 ms, bez zpoždění dopředu
- G.711 je kodér řeči křivky
- G.711, dodatek I definuje algoritmus skrytí ztráty paketů (PLC), který pomáhá skrývat ztráty přenosu v paketové síti
- G.711 Dodatek II definuje algoritmus nespojitého přenosu (DTX), který využívá detekci hlasové aktivity (VAD) a generování pohodlného šumu (CNG) ke snížení využití šířky pásma během období ticha
- Testování PSQM za ideálních podmínek poskytuje průměrné hodnocení 4,45 pro G.711 μ-law, 4,45 pro G.711 A-law
- Testování PSQM pod napětím v síti přináší průměrné hodnocení 4,13 pro G.711 μ-law, 4,11 pro G.711 A-law
Typy
G.711 definuje dva hlavní kompandovací algoritmy, μ-law algoritmus a A-law algoritmus . Oba jsou logaritmické , ale zákon A byl speciálně navržen tak, aby byl pro počítač jednodušší na zpracování. Norma také definuje posloupnost opakujících se hodnot kódu, která definuje úroveň výkonu 0 dB .
Algoritmy μ-law a A-law kódují 14bitové a 13bitové podepsané lineární vzorky PCM (v daném pořadí) do logaritmických 8bitových vzorků. Kodér G.711 tedy vytvoří bitový tok 64 kbit/s pro signál vzorkovaný na 8 kHz.
G.711 μ-law má tendenci poskytovat větší rozlišení signálům vyššího rozsahu, zatímco G.711 A-law poskytuje více úrovní kvantizace při nižších úrovních signálu.
Používají se termíny PCMU, G711u nebo G711MU pro G711 μ-law a PCMA nebo G711A pro G711 A-law.
Zákon
Kódování A-zákona tedy vezme jako vstup 13bitový podepsaný lineární zvukový vzorek a převede jej na 8bitovou hodnotu následujícím způsobem:
Lineární vstupní kód |
Komprimovaný kód XOR 01010101 |
Lineární výstupní kód |
---|---|---|
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 |
- ^ Tato hodnota je vytvořena tak, že vezmemereprezentaci vstupní hodnoty obou komplementů a invertujeme všechny bity za znaménkový bit, pokud je hodnota záporná.
- ^ Podepsaná reprezentace velikosti
Kde s
je znaménkový bit, s
je jeho inverzní (tj. Kladné hodnoty jsou kódovány pomocí MSB = s = 1) a označené bity x
jsou zahozeny. Všimněte si toho, že první sloupec tabulky používá jinou reprezentaci záporných hodnot než třetí sloupec. Například vstupní desetinná hodnota −21 je reprezentována binárně po bitové inverzi jako 1000000010100, která se mapuje na 00001010 (podle prvního řádku tabulky). Při dekódování se toto mapuje zpět na 1000000010101, což je interpretováno jako výstupní hodnota −21 v desítkové soustavě. Vstupní hodnota +52 (0000000110100 v binárním) mapuje na 10011010 (podle druhého řádku), která mapuje zpět na 0000000110101 (+53 v desítkové soustavě).
To lze považovat za číslo s plovoucí desetinnou čárkou se 4 bity mantisy m (ekvivalentní 5bitové přesnosti), 3 bity exponentu e a 1 znaménkovým bitem s , formátované jako seeemmmm
s dekódovanou lineární hodnotou y danou vzorcem
což je 13-bitové celé číslo v rozmezí ± 1 až ± (2 12 - 2 6 ). Všimněte si, že žádný komprimovaný kód dekóduje na nulu kvůli přidání 0,5 (polovina kvantizačního kroku).
Kromě toho norma specifikuje, že všechny výsledné sudé bity ( LSB jsou sudé) jsou před přenosem oktetu invertovány. To má zajistit spoustu přechodů 0/1, které usnadní proces obnovy hodin v přijímačích PCM. Tichý kanál PCM kódovaný tichým A zákonem má 8bitové vzorky kódované 0xD5 místo 0x80 v oktetech.
Při odesílání dat přes E0 ( G.703 ) se nejprve odešle MSB (znak) a jako poslední LSB.
ITU-T STL definuje algoritmus pro dekódování následovně (dekódované hodnoty umístí do 13 nejvýznamnějších bitů 16bitového výstupního datového typu).
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;
}
}
Viz také „Uživatelská příručka ITU-T Software Tool Library 2009 2009“, kterou najdete na.
μ-zákon
Kódování μ-law (někdy označované jako ulaw, G.711Mu nebo G.711μ) bere 14bitový podepsaný lineární zvukový vzorek v komplementární reprezentaci dvou jako vstup, invertuje všechny bity za znaménkový bit, pokud je hodnota záporná, přidá 33 (binární 100001) a převede jej na 8bitovou hodnotu následujícím způsobem:
Lineární vstupní hodnota |
Komprimovaný kód XOR 11111111 |
Lineární výstupní hodnota |
---|---|---|
s00000001abcdx | s000abcd | s00000001abcd1 |
s0000001abcdxx | s001abcd | s0000001abcd10 |
s000001abcdxxx | s010abcd | s000001abcd100 |
s00001abcdxxxx | s011abcd | s00001abcd1000 |
s0001abcdxxxxx | s100abcd | s0001abcd10000 |
s001abcdxxxxxx | s101abcd | s001abcd100000 |
s01abcdxxxxxxx | s110abcd | s01abcd1000000 |
s1abcdxxxxxxxx | s111abcd | s1abcd10000000 |
- ^ Tato hodnota je vytvořena tak, že vezmeme obě komplementární reprezentaci vstupní hodnoty, invertujeme všechny bity za znaménkový bit, pokud je hodnota záporná, a přidáme 33.
- ^ Podepsaná reprezentace velikosti . Konečný výsledek se získá snížením velikosti této hodnoty o 33.
Kde s
je znaménkový bit a označené bity x
jsou zahozeny.
Kromě toho norma specifikuje, že kódované bity jsou invertovány před vysláním oktetu. Tichý μ-zákonem kódovaný kanál PCM má 8bitové vzorky přenášené 0xFF místo 0x00 v oktetech.
Přidání 33 je nutné, aby všechny hodnoty spadaly do kompresní skupiny a při dekódování byly odečteny zpět.
Rozbití kódované hodnoty formátované seeemmmm
na 4 bity mantisy m , 3 bity exponentu e a 1 znakový bit s , dekódovaná lineární hodnota y je dána vzorcem
což je 14bitové celé číslo se znaménkem v rozsahu ± 0 až ± 8031.
Všimněte si, že 0 je přenášeno jako 0xFF a -1 je přenášeno jako 0x7F, ale když je přijato, výsledek je 0 v obou případech.
G.711.0
G.711.0, také známý jako G.711 LLC, využívá bezeztrátovou kompresi dat ke snížení využití šířky pásma až o 50 procent. Bezztrátový komprese G.711 modulace pulsní kódové norma byla schválena ITU-T v září 2009.
G.711.1
G.711.1 je rozšíření G.711, publikované jako doporučení ITU-T G.711.1 v březnu 2008. Jeho formální název je Wideband embedded extension for G.711 pulse code modulation .
G.711.1, umožňuje přidání úzkopásmového a/nebo širokopásmového (16 000 vzorků/s) vylepšení, každé při 25% přenosové rychlosti (zahrnutého) základního bitového proudu G.711, což vede k datovým rychlostem 64, 80 nebo 96 kbit /s.
G.711.1 je kompatibilní s G.711 rychlostí 64 kbit/s, proto se předpokládá efektivní nasazení ve stávajících infrastrukturách Voice over IP ( VoIP ) založených na G.711 . Kodér G.711.1 může kódovat signály na 16 kHz se šířkou pásma 50–7000 Hz při 80 a 96 kbit/s a pro vzorkování 8 kHz může výstup produkovat signály se šířkou pásma od 50 do 4000 Hz, při 64 a 80 kbit/s.
Kodér G.711.1 vytváří vložený bitový tok strukturovaný do tří vrstev odpovídajících třem dostupným bitovým rychlostem: 64, 80 a 96 kbit/s. Bitový tok neobsahuje žádné informace o tom, které vrstvy jsou obsaženy, implementace by vyžadovala signalizaci outbandu, na které jsou vrstvy k dispozici. Tři vrstvy G.711.1 jsou: logově komprimovaná pulzní kódová modulace (PCM) dolního pásma včetně zpětné vazby šumu, vestavěné rozšíření PCM s adaptivním přidělováním bitů pro zvýšení kvality základní vrstvy v dolním pásmu a kódování vážené vektorové kvantizace vyšší pásmo na základě modifikované diskrétní kosinové transformace (MDCT).
V roce 2010 jsou plánována dvě rozšíření pro G.711.1: superširokopásmové rozšíření (šířka pásma až 14 000 Hz) a bezeztrátová komprese bitového toku.
Licencování
Patenty na G.711, vydané v roce 1972, vypršely, takže je lze používat bez nutnosti licence.
Viz také
Reference
- ^ a b c "G.711: Pulzní kódová modulace (PCM) hlasových frekvencí" . www.itu.int . Archivováno od originálu dne 17. června 2019 . Citováno 2019-11-11 .
- ^ "Video/hlas/řečové kodeky" . Grandstream = . Citováno 19. července 2020 .
-
^ G.191: Softwarové nástroje pro standardizaci kódování řeči a zvuku . Funkce
alaw_expand
v souboruSoftware/stl2009/g711/g711.c
. Itu.int. Citováno 2013-09-18. - ^ G.191: ITU-T Software Tool Library 2009 Uživatelská příručka . Itu.int (2010-07-23). Citováno 2013-09-18.
- ^ ITU-T (2009-07-17). „Newslog ITU -T - hlasový kodek získává novou bezeztrátovou kompresi“ . Archivováno od originálu dne 2016-03-03 . Citováno 2010-02-28 .
- ^ ITU-T. „G.711.0: Bezztrátová komprese pulzní kódové modulace G.711“ . Citováno 2010-02-28 .
- ^ a b Nedávný vývoj kódování zvuku/řeči v ITU-T a budoucí trendy (PDF) , srpen 2008 , vyvoláno 2010-02-28
- ^ a b c ITU-T (2008) G.711.1: Širokopásmové vestavěné rozšíření pro modulaci pulzního kódu G.711 Citováno 2009-06-19
- ^ Hiwasaki; et al. (2008-08-25), G.711.1: širokopásmové rozšíření ITU-T G.711 (PDF) , vyvoláno 2015-06-13
- ^ Lapierre; et al. (2008-08-25), Tvarování šumu v interoperabilním integrovaném kodeku ITU-T G.711 (PDF) , vyvoláno 2015-06-13
- ^ Nokia Research Center (2009-04-06), Standardy pro kódování (PDF) , vyvoláno 2010-03-01
externí odkazy
- Doporučení ITU-T G.711
- Softwarové nástroje ITU-T G.191 pro kódování řeči a zvuku, včetně kódu G.711 C.
- Code Project C# implementace G.711 se zdrojovým kódem
- RFC 3551 - RTP profil pro audio a video konference s minimálním ovládáním - G.711 - definice PCMA a PCMU.
- RFC 4856 - Registrace typu média audio/PCMA a audio/PCMU
- RFC 5391 -RTP formát užitečného zatížení pro doporučení ITU-T G.711.1 (PCMA-WB a PCMU-WB)