Voice over IP handleiding
- Voice over IP, een inleiding
- Digitalisering en compressie van spraak
- De CODEC, het VoIP compressie werkpaard
Voice over IP, een inleiding
Eén van de nieuwere en zich snel verspreidende communicatie technologieën in de wereld is zonder twijfel Voice over IP, of VoIP. Het is een technologie waarbij spraak pakketten orden gedigitaliseerd, verstuurd over een IP netwerk dat zowel een local netwerk of het internet kan zijn en waarbij de digitale pakketten weer worden samen gevoegd tot een hoorbaar geluid aan de ontvangerszijde. Het belangrijkste gebruik ervan is het vervangen van telefonie, en daarom is real-time performance van VoIP technologieën een belangrijk punt.
In de afgelopen jaren hebben verscheidene implementaties van VoIP het licht gezien. Sommigen zijn volledig gesloten terwijl anderen gebaseerd zijn op standaarden. Afhankelijk van de technologie staan sommigen integratie toe met normale telefonie infrastructuur wat de mogelijkheid geeft om het beste van beide werelden te gebruiken. Er zijn een aantal zaken waaraan aandacht moet worden besteed voordat besloten kan worden welke technologie het best geschikt is voor een specifieke situatie.
Digitalisering en compressie van spraak
De eerste stap van elke VoIP verbinding is het digitaliseren van analoge signalen naar digitale pakketten. Dit kan op een aantal manieren. De gemakkelijkste manier is om een vaste bemonsteringsfrequentie te nemen die hoog genoeg is om alle benodigde frequenties af te vangen. Vervolgens wordt van elke bemonstering het signaal niveau vergeleken met een aantal vaste niveaus. 8000 Hz en 256 bemonsteringsniveaus zijn veel voorkomende instellingen. In deze toepassing wordt het signaal gescant door een normale analoog digitaal converter, of ADC die het signaal bemonstert met een vaste frequentie met een diepte van 8 bits. De data wordt ongecomprimeerd verzonden naar de andere partij en terug getransformeerd door een digitaal naar analoog converter of DAC. De combinatie van 8 kilohertz en een bemonsteringsdiepte van 8 bits is goed voor normale telefoonconversaties. Telefonie communicatie vindt plaats op frequenties tussen ongeveer 500 Hz en 3500 Hz en 256 verschillende signaalniveaus zijn voldoende om goede kwaliteit te garanderen.
Maar goede kwaliteit komt met een prijs. Ongecomprimeerde bemonstering van gegevens op deze snelheid genereert een continue stroom van gegevens van 7 kbytes/sec. Dat is niet heel erg voor breedbandverbindingen, maar het kan te veel zijn voor afgelegen lokaties met langzamere internet verbindingen—of zelfs erger—via een mobiele internet verbinding. Daarom zijn er verscheidene pogingen geweest om het aantal kilobytes dat per seconde nodig is voor acceptabele spraakkwaliteit te verlagen. Dit kan in principe op een groot aantal manieren worden bereikt. Het is mogelijk om de bemonsteringsfrequentie naar beneden te brengen, maar dit heeft een negatief effect omdat hierdoor de hogere frequenties worden uitgefilterd. Volgens het Nyquest theorema—dat teruggaat tot 1928, lang voordat er VoIP of zelfs een internet bestond—is het onmogelijk signalen te digitaliseren waarvan de bemonsteringsfrequentie lager ligt dan twee maak de hoogste frequentie in het spectrum. Het verlagen van de bemonsteringsfrequentie naar bijvoorbeeld 4000 Hz zou de maximaal toegestane frequentie in het analoge signaal terugbrengen tot 2000 Hz, wat veel lager is dan de frequenties die normaal in spraak voorkomen, speciaal bij vrouwen en kinderen.
Dus het reduceren van de bemonsteringsfrequentie kan iets helpen in het reduceren van de bandbreedte behoefte van de VoIP applicatie, maar dat is slechts een fractie. Een andere mogelijkheid is om het aantal bits te beperken dat nodig is om één bemonstering op te slaan. Zoals al eerder opgemerkt geven 8 bits een acceptable kwaliteit van de codering van en spraaksignaal. Het reduceren van dit getal naar 4 zou de benodigde bandbreedte met 50% reduceren. Helaas komt ook deze reductie met een prijs. Met 8 bits zijn er 256 mogelijke signaalniveaus. Het decoderen van een dergelijk signaal terug naar analoog geeft een vloeiend signaal waar de stap van het ene niveau naar het volgende minder dan 0,5% is van de piek-piek signaalwaarde. Hoewel 0,5% vervorming mogelijk hoorbaar is, zal de spraak nog steeds verstaanbaar zijn en de meeste mensen van wie het oor niet speciaal hierop getraind is zullen de vervormingen niet eens kunnen horen.
Met een 4 bit codeerdiepte van het signaal zijn slechts 16 verschillende niveaus beschikbaar. Dat is niet erg veel. Elke stap in de digitaal naar analoog conversie zal 7% bedragen die lineair is verdeeld tussen de maximaal mogelijke signaalsterkte pieken. Stel je voor dat iemand met een zachte stem door de telefoon spreekt waarbij het signaal niveau niet meer wordt dan 25% van de piekwaarden. In dat geval is de digitale codering bijna binair, resulterend in een Donald Duck-achtig stemmetje aan de ontvangerszijde. Het reduceren van de bemonsteringsdiepte met 50% van 8 naar 4 bits geeft een kwaliteitsverslechtering van een factor 16. Dit is ook niet wat we willen.
Eén oplossing om het probleem van slechte geluidskwaliteit met lage signaal volumes te lijf te gaan is door de grafiek van de signaalsterkte niet in zestien gelijke niveaus te verdelen, maar door meer niveaus rond het nulniveau te nemen en minder in de buurt van het maximale volume. Het is een gebruikelijke benadering om een logaritmische schaal te gebruiken in plaats van een lineaire schaal. Logaritmische schalen zijn niet vreemd in deze toepassing, omdat ons oor ook ongeveer volgens een logaritmische schaal volumeverschillen registreert. Tien keer meer volume in termen van energie wordt door het menselijke oor ervaren als ongeveer een factor twee luider.
Een andere oplossing is om zelfstellende algoritmes te gebruiken die het signaal weliswaar lineair verdelen, maar niet tussen de maximum mogelijke piek niveaus van het signaal, maar tussen de werkelijke waarden van het signaal. Wanneer iemand met laag volume spreekt zullen deze algoritmes het signaal automatisch versterken en de fout door het digitaliseren van het signaal is daardoor nooit meer dan 7% bij een sample diepte van 4 bits. Dit type signaalverwerking is soms te horen op lijnen met ruis, waar het ruisniveau toeneemt tussen woorden of zinnen. Dit komt doordat het sample algoritme lage volume signalen versterkt, zelfs als er geen echt signaal beschikbaar is. De versterking van de ruis wordt dan gehoord aan de ontvangende zijde.
De beste manier om bandbreedte gebruik van een VoIP applicatie te bewerkstelligen is door gebruik te maken van een speciaal low-loss compressieprotocol. We kennen allemaal compressie van onze computer. Toepassingen zoals ZIP reduceren de afmetingen van de bestanden door bitpatronen te analyseren en alternatieve bitpatronen en conversie tabellen te genereren die minder ruimte innemen dan het originele bestand. Compressie technieken zoals in ZIP worden gebruikt worden no-loss compressietechnieken genoemd omdat het mogelijk is het originele bestand terug te halen uit de verkleinde versie zonder verlies van informatie. Andere technieken zijn low-loss en daarbij wordt geaccepteerd dat sommmige informatie verloren gaat om daarbij extra compressie mogelijk te maken. Low-loss compressie wordt vaak gebruikt in het comprimeren van afbeeldingen zoals bij het JPG formaat. De resulterende versie lijkt op het origineel, maar bij nauwkeurig kijken zullen afwijkingen te zien zijn die veroorzaakt zijn door het compressiealgoritme. Dit type algoritme werkt het best, wanneer ze ontworpen zijn met kennis van de te comprimeren data. Er zijn specifieke compressiealgoritmes ontwikkeld voor spraak compressie die een laag gehalte aan signaalverminking koppelen met een lage bandbreedte behoefte. Comprimering in mobiele telefoons is hiervan een voorbeeld.
De CODEC, het VoIP compressie werkpaard
Met zo veel verschillende manieren waarop gedigitaliseerde spraak gecodeerd kan worden om over een digitale lijn te worden verzonden moeten VoIP weten welke codeertechnologieën worden ondersteund door de andere partij om een succesvolle verbinding mogelijk te maken. Dit kan worden bereikt door het coderen en decoderen uit te laten voeren door een gestandaardiseerd stuk hard- of software, de CODEC, of coder decoder Codecs worden gebruikt in vele toepassingen inclusief video, maar wij zullen ons nu alleen concentreren op codecs die kunnen worden gebruikt met VoIP.
Naam | Compressie | Bitrate (kbps) | Toepassing |
---|---|---|---|
G.711 | A-law en µ-law PCM | 64 | Algemene telefonie |
G.726 | ADPCM | 16, 24, 32, 40 | Internationale telefonie, DECT |
GSM 06.10 FR | RPE-LTP | 13.2 | Originele GSM codec |
G.729 | CS-ACELP | 8 | VoIP over langzame vebinding |
Uiteraard zijn er verscheidene tientallen codecs in het wild, maar ik zal mij bij deze vier houden omdat ze het best bekend zijn en aanezig zijn in de meeste VoIP toepassingen. Het is verbazend hoeveel afkortingen en nieuwe termen er in zo’n kleine tabel kunnen zitten en ik zal daarom eerst beginnen met een kleine uitleg.
ITU-T standaarden G.711, G.726 en G.729
Standaardisering is belangrijk om twee VoIP toepassingen met elkaar te laten communiceren. Gelukkig heeft de telecommunicatie sector altijd de noodzaak gevoeld om protocollen en informatieuitwisseling te standaardiseren en de eerste officiële organisatie hiervoor gaat terug tot 1865, de ITU of International Telegraph Union. Deze organisatie werd een officiëel agentschap van de Verenigde Naties in 1947. De standaardisatie tak van de ITU evolueerde in de CCITT of Comité Consultatif International Téléphonique et Télégraphique in 1956 en werd uiteindelijk hernoemd tot ITU-T in 1993. De afkorting CCITT wordt nog steeds op veel plaatsen gebruikt bijvoorbeeld bij het benoemen van een aantal specifieke CRC berekening algoritmes.
De ITU-T heeft een aantal spraak compressie algoritmes gedefiniëerd die worden gebruikt in nationale en internationale telefonietoepassingen. Al deze compressiestandaarden hebben een naam die begint met de letter G gevolgd door een nummer. Als een vuistregel kan gezegd worden dat de nummering van de standaard ook de volgorde aangeeft waarin ze zijn ontstaan, en dat hogere nummers in het algemeen van standaarden zijn die complexere compressie technieken definiëren die meer rekenkracht vergen dan de lager genummerde standaarden, maar daarbij ook een betere verhouding hebben van spraakkwaliteit ten opzichte van bandbreedtegebruik.
A-law en µ-law PCM
De compressie standaard G.711 staat twee manieren toe om binnenkomende spraakgegevens te comprimeren. Deze twee compressiesystemen worden vaak A-law en µ-law genoemd. Beide compressiestandaarden gebruiken PCM of pulscode modulatie als de basis databemonsteringsmethode. Met PCM wordt de data bemonsterd met een vast interval. G.711 gebruikt PCM op een frequentie van 8 kHz, wat resulteert in 8000 gegevens per seconde. Elk gegeven heeft een bit diepte van 13 bits (A-law) of 14 bits (µ-law), wat initiëel een hoge kwaliteit geeft met slechts zeer kleine fouten ten gevolge van de digitalisering van het signaal. Het gebruik van A-law en µ-law compressie is vooral geografisch bepaald. In Noord-Amerika en Japan is vooral µ-law in gebruik, terwijl A-law de standaard is voor de rest van de wereld. Er zijn bovendien kleine verschillen in het algoritme die A-law gemakkelijker te implementeren maken met minder benodigde rekenkracht dan zijn tegenhanger µ-law.
Anything is possible if you don't know what you're talking about.
GREEN'S LAW OF DEBATE
|