Hoe werkt audio bitcompressie?


Wanneer men een audiosignaal lineair (niet bit-gecompresseerd) zonder kwaliteitsverlies wil omzetten in een digitaal signaal, heeft men relatief veel bits nodig om de kwaliteit te behouden. Men noemt zo’n digitaal signaal dan een “PCM-gecodeerd signaal” (Pulse Code Modulatie). PCM codering wordt bijvoorbeeld bij CD gebruikt, maar ook AES/EBU en AES67 transporteren PCM-signalen.

Bij PCM wordt het audiosignaal bemonstert (sampelen) met zeer korte pulsen. Hieronder zie je een voorbeeld zo’n bemonstering.

Het continue analoog signaal wordt omgevormd in een reeks opeenvolgende pulsen die overeenkomen met de amplitude van het analoge signaal op het moment dat de bemonstering plaats vindt. De frequentie waarmee bemonsterd wordt, noemt men de “sampling frequentie”.

De grootte van ieder pulsje wordt gemeten en met een bepaalde precisie omgezet in een binair getal. De preciesie van omzetting noemt men de resolutie.

Gebruikt men getallen van 16-bit, dan heeft men een resolutie van 16-bit (ook wel bit-diepte genoemd).

Een CD heeft een bitdiepte van 16-bit met een sample fresquentie van 44,1 kHz (44100 monsters/16-bit waarden per seconde). Het linker en rechtersignaal worden apart bemonsterd, elk met 16-bit en 44100 keer per seconde. Een stereo-CD levert bij het afspelen dus per seconde 2x 44100 monsters met waarden van 16-bit resolutie! Dit zijn 88200 waarden van 16bit per seconde of 1 411 200 bits/s. Gebruikt men een bemonstering van 48000 samples per seconde dan komt men uit bij 1 536 000 bits/s.

Als je weet dat DAB+ slechts 2304 kbit/s kan versturen, inclusief de error correctie, kom je daar eigenlijk niet ver mee. Daarom zijn er manieren gevonden om deze bitsnelheid naar beneden te krijgen. Dit gaat uiteraard ten koste van wat kwaliteit.

Gelukkig bestaan er methodes die met slechts 10% van de originele bitsnelheid, het kwaliteitsverlies kunnen beperken tot 3% kwaliteitsverlies (97% kwaliteit i.p.v. 100%). Als men dan weet dat het frequentiespectrum schaarser is dan het goud dat men op de aarde vindt, moet men de 3% aan kwaliteitsverlies even gaan relativeren.

Denk hier eens over na: gezien alle miserie op de FM band van de voorbije 40 jaar, is het beter om 10 radiostations met een kwaliteit van 97% te zien, dan 1 radiostation met een kwaliteit van 100%. 

Niet alle luisteraars zullen zo’n 100% perfecte geluidskwaliteit kunnen weergeven. Een kleine inboeting op audiokwaliteit is dan ook perfect aanvaardbaar voor radio broadcast.

Conclusie:

Audio-compressie en het kleine verlies aan geluidskwaliteit is een noodzakelijk kwaad waar iedereen mee moet leven. Bovendien is het menselijk oor quasi niet in staat de 3% kwaliteitsverlies te detecteren.

Audio datacompressie kan men opdelen in twee soorten compressie:

1. “Lossless” audio datacompressie

Zoals de woorden het zeggen, verlies je bij “Lossless” compressie geen kwaliteit. Deze compressiemethode kan het origineel signaal exact terug construeren. Een welbekend voorbeeld is FLAC.

De meeste van de datacompressie algoritmes zijn gebaseerd op Huffman codes.

Het principe is eenvoudig:

de meest voorkomende bits-sequenties krijgen een kortere code en weinig voorkomende bit-sequencies krijgen een langere code.

De Morse code past dit principe reeds toe: de letter e (•) heeft een kortere code dan de letter y (- • – -).

In het geval van audio gaat men dit principe dynamisch toepassen op blokken audio data. Men kan zo zonder enig verlies van data toch een kleine bitrate verlaging teweeg brengen.

2. “Lossy” audio datacompressie

“Lossless” compressie is echter onvoldoende om de bitrate te verlagen zodat het mogelijk wordt om deze compressie te gebruiken voor radio toepassingen zoals DAB of DAB+. Daarom gaat men over naar “Lossy” compressie methodes (lossy = verlies). Zoals het woord het zegt, doet men hier afbreuk aan een exacte copie en accepteert men een (klein) verlies aan kwaliteit. Gelukkig heeft men manieren ontwikkeld om dit verlies te beperken tot enkele percenten.

Men maakt vooral gebruik van de de imperfectie van het menselijk oor. De informatie waarvan de kans klein of nul is dat het oor deze informatie kan detecteren, wordt uit het signaal weggenomen.

Men noemt dit soort compressie “perceptuele” compressie.

Bij het herstellen van het bit-gecompresseerd signaal (decoder) zal buiten een “onbeschadigd perfect getraind oor” quasi niemand het verschil horen.

Bij “Lossy compressie” zal men het audio signaal uiteen rafelen in stukjes audio informatie. Die stukjes worden gerangschikt volgens een schaal van “heel belangrijk” tot “minder belangrijk”. Hiervoor wordt ook de gehoorcurve gebruikt die overeenkomt met de werking van het menselijk gehoor. Daarna worden bepaalde stukjes weggegooid.

De kans is groot dat als je 80% van de minst belangrijke informatie weggooit, je niet eens het verschil hoort in het audio signaal.

Maar hoe  kan audio informatie in “heel belangrijke informatie” en “mindere belangrijke” of zelfs “overbodige informatie” ingedeeld worden?

Eenvoudig uitgelegd zal de AAC-bitcompressiemethode hiervoor een mathematische transformatie uitvoeren op het PCM-signaal. Men noemt deze transformatie “Modified Discrete Cosine Transform” of MDCT. Dit is een transformatie van het tijdsdomein naar het frequentiedomein die alle cosinussen, waaruit het signaal is samengesteld, uit het signaal haalt.

Daarna voert men de bekomen data door een perceptuele algoritme waardoor enkel de meest nodige componenten overblijven die we als mens kunnen horen.

Deze componenten worden dan gekwantiseerd (omgezet in waarden) en doorgestuurd als zijnde het AAC-signaal.

De decoder zal de ontvangen waarden uit het frequentiedomein terug omzetten naar het tijdsdomein en naar hoorbare audio.

Belangrijk voor DAB+:

Het venster (aantal samples) die aangeeft hoeveel samples men verwerkt voor één omzetting (HE-AAC) kent twee vensterlengtes nml. 1024 samples en 960 samples.

Het tijdsinterval waarmee samples continu verwerkt worden, moet overeenstemmen met het interval dat met de HE-AAC informatie wordt doorgestuurd.

Dit is belangrijk omdat de meeste decoders voor Internet streams enkel het meest gebruikte venster van 1024 samples herkennen.

DAB+ werkt echter met een 960 samples venster! Dit is belangrijk om weten.

Bij 48000 samples per seconde (48kHz) duren 960 samples dan 960/48000 = 0,02 s of 20ms. Het resultaat van 6 van deze omzettingen past dan in het HE-AAC DAB+ superframe van 120ms

DAB+ voor Gevorderden