G.726
40, 32, 24, 16 kbit/s Adaptive Differential Pulse Code Modulation (ADPCM) | |
Status | I kraft |
---|---|
Året började | 1990 |
Senaste versionen |
(05/06) maj 2006 |
Organisation | ITU-T |
Basstandarder | G.721 |
Domän | ljudkomprimering |
Licens | Fritt tillgänglig |
Hemsida | https://www.itu.int/rec/T-REC-G.726 |
G.726 är en ITU-T ADPCM - talkodekstandard som täcker överföring av röst med hastigheter på 16, 24, 32 och 40 kbit /s. Den introducerades för att ersätta både G.721, som täckte ADPCM med 32 kbit/s, och G.723 , som beskrev ADPCM för 24 och 40 kbit/s. G.726 introducerade också en ny hastighet på 16 kbit/s. De fyra bithastigheterna som är associerade med G.726 hänvisas ofta till med bitstorleken på ett sampel , som är 2, 3, 4 respektive 5-bitar. Motsvarande bredbandscodec baserad på samma teknik är G.722 .
Det vanligaste läget är 32 kbit/s, vilket fördubblar den användbara nätverkskapaciteten genom att använda halva hastigheten av G.711 . Den används främst på internationella trunkar i telefonnätverket och är standardcodec som används i trådlösa DECT- telefonsystem. Den huvudsakliga tillämpningen av 24 och 16 kbit/s kanaler är för överbelastningskanaler som bär röst i digital kretsmultiplikationsutrustning ( DCME). Den huvudsakliga tillämpningen av 40 kbit/s-kanaler är att överföra datamodemsignaler i DCME, speciellt för modem som arbetar med mer än 4800 bit/s.
Historia
G.721 introducerades 1984, medan G.723 introducerades 1988. De veks in i G.726 1990.
G.727 introducerades samtidigt som G.726 och inkluderar samma bithastigheter, men är optimerad för PCME-miljö (paketkretsmultiplexutrustning). Detta uppnås genom att bädda in 2-bitars kvantiserare till 3-bitars kvantiserare och samma sak för de högre lägena. Detta tillåter att den minst signifikanta biten släpps från bitströmmen utan negativa effekter på talsignalen.
Funktioner
- Samplingsfrekvens 8 kHz
- 16 kbit/s, 24 kbit/s, 32 kbit/s, 40 kbit/s bithastigheter tillgängliga
- Genererar en bitström , därför bestäms ramlängden av paketeringstiden (vanligtvis 80 sampel för 10 ms ramstorlek)
- Typisk algoritmisk fördröjning är 0,125 ms, utan framåtblicksfördröjning
- G.726 är en vågformstalkodare som använder Adaptive Differential Pulse Code Modulation ( ADPCM )
- PSQM- testning under idealiska förhållanden ger genomsnittliga åsiktspoäng på 4,30 för G.726 (32 kbit/s), jämfört med 4.45 för G.711 ( μ-lag ) [ citat behövs ]
- PSQM-testning under nätverksstress ger genomsnittliga opinionspoäng på 3,79 för G.726 (32 kbit/s), jämfört med 4.13 för G.711 (μ-lag)
- 40 kbit/s G.726 kan bära 12000 bit/s och långsammare modemsignaler, medan 32 kbit/s G.726 kan bära 2400 bit/s och långsammare modemsignaler bra och 4800 bit/s med något mer försämring än tydliga kanalcodecs .
Endianness och typ av nyttolast
Eftersom byteordningen för dataprotokoll i Internetsammanhang generellt definierades som big endian och kallades helt enkelt nätverksbyteordning , vilket (bland annat) anges av den föråldrade RFC 1700, definierade den föråldrade RFC 1890 inte uttryckligen endianiteten hos föregångare till G.726, G.721, i RTP heller. I stället för det, i den föråldrade RFC 1890, angavs i allmänhet användningen av big endian med termen nätverksbyteordning för alla nämnda codecs igen:
"För fleroktettkodningar sänds oktetter i nätverksbyteordning (dvs. den mest signifikanta oktetten först)." — IETF, den föråldrade RFC 1890, avsnitt 4.2
Nyttolasttypen för G.721 definierades av den föråldrade RFC 1890 som 2 , alltså a=rtpmap:2 G721/8000
. I utkast till nyare version av denna RFC återanvändes den för G.726, dvs a=rtpmap:2 G726-32/8000
.
I motsats till detta definierade ITU uttryckligen byteordningen i sina rekommendationer avseende G.726 respektive ADPCM, men på två olika sätt. Rekommendation X.420 säger att det ska vara lite endian, i enlighet med rekommendation I.366.2 Annex E, det ska vara big endian. Detta ledde till motstridiga beslut i olika implementeringar, eftersom vissa tillverkare valde little endian och andra för big endian. Konsekvensen var att dessa implementeringar var inkompatibla, eftersom avkodning med fel byteordning resulterar i en kraftigt förvrängd ljudsignal. Därför fixerades den oklara definitionen av RFC 3551, som ersätter RFC 1890. Avsnitt 4.5.4 i RFC 3551 definierar de klassiska MIME-typerna G726-16, 24, 32 och 40 som little endian och introducerar nya MIME-typer för bis endian, som är AAL2-G726-16, 24, 32 och 40. Nyttolasttypen ändrades till dynamisk för att förhindra förvirring. Istället för nyttolast typ 2 ska en dynamisk nyttolast i intervallet från 96 till 127 användas:
"Observera att "little-endian"-riktningen i vilken samplingar packas i oktetter i G726-16, -24, -32 och -40 nyttolastformaten som anges här överensstämmer med ITU-T Recommendation X.420, men är den motsatta av vad som specificeras i ITU-T-rekommendation I.366.2 bilaga E för ATM AAL2-transport. En andra uppsättning RTP-nyttolastformat som matchar paketeringen av I.366.2 bilaga E och identifieras av MIME-undertyperna AAL2-G726-16, -24, - 32 och -40 kommer att specificeras i ett separat dokument." — IETF, RFC 3551, avsnitt 4.5.4
"Nyttlasttyp 2 tilldelades G721 i RFC 1890 och dess motsvarande efterföljare G726-32 i utkastversioner av denna specifikation, men dess användning är nu utfasad och den statiska nyttolasttypen är markerad som reserverad på grund av motstridig användning av nyttolastformaten G726-32 och AAL2-G726-32 (se avsnitt 4.5.4)" — IETF, RFC 3551, avsnitt 6
little endian (X.420 och RFC 3551) |
big endian (I.366.2 Annex E och RFC 3551) |
utfasad RFC 1890 |
---|---|---|
G726-16 a=rtpmap:{från 96 till 127} G726-16/8000
|
AAL2-G726-16 a=rtpmap:{från 96 till 127} AAL2-G726-16/8000
|
a=rtpmap:2 G726-16/8000
|
G726-24 a=rtpmap:{från 96 till 127} G726-24/8000
|
AAL2-G726-24 a=rtpmap:{från 96 till 127} AAL2-G726-24/8000
|
a=rtpmap:2 G726-24/8000
|
G726-32 a=rtpmap:{från 96 till 127} G726-32/8000
|
AAL2-G726-32 a=rtpmap:{från 96 till 127} AAL2-G726-32/8000
|
a=rtpmap:2 G726-32/8000
|
G726-40 a=rtpmap:{från 96 till 127} G726-40/8000
|
AAL2-G726-40 a=rtpmap:{från 96 till 127} AAL2-G726-40/8000
|
a=rtpmap:2 G726-40/8000
|
Nyare implementeringar respekterar RFC 3551 och skiljer sig tydligt mellan G726-xx (lilla endian) och AAL2-G726-xx (big endian). Gigaset C610 IP DECT-telefonen genererar t.ex. följande kod i sin SIP INVITE:
a=rtpmap:96 G726-32/8000
→ dynamisk nyttolast typ 96 och G.726 enligt X.420, alltså little endian, enligt definition i RFC 3551 a=rtpmap:97 AAL2-G726-32/8000
→ dynamisk nyttolasttyp 97 och G.726 enligt I.366.2 Annex E, alltså big endian, enligt definitionen i RFC 3551 a=rtpmap:2 G726-32/8000
→ statisk nyttolast typ 2 och G.726 med oförutsägbar endianness, som G.721 enligt till den föråldrade RFC 1890