
|
MPEG Audio - MPEG Compressie
Test en ervaar mpeg-I layer 3 =mp3
en hoor tevens het verschil in kwaliteit tussen verschillende compressies!
|
|
Subbandcodering , de basistechniek!
SBC steunt op een fenomeen dat optreedt bij het menselijk horen genaamd maskering.Kort
gezegd komt dit hier op neer. Normale gezonde menselijk oren zijn gevoelig voor een breed
frequentiespectrum. Maar wanneer een bepaalde frequentie in dit spectrum veel energie
heeft zal dit voor gevolg hebben dat naburige frequenties met lagere energie niet zullen
te horen zijn! De luidste frequentie maskeert de zachtere tonen en wordt de maskeerder
genaamd.Strikt gesproken hebben wij het hier over simultane maskering over de frequentie
bandbreedte .Er bestaat ook niet-simultane maskering ( maskering in de tijd ) waar een
luide toon een maskeerinvloed heeft op volgende optredende geluiden die kort in tijd na de
luidere toon zouden optreden. Deze methode wordt vooral toegepast in mpeg-II !
Het basis idee van SBC bestaat dus uit een reductie van de bandbreedte door de
gemaskeerde bandbreedte weg te laten .MPEG Audio is de meest populaire vorm van SBC.
De basis structuur van deze encoding van audio ziet er steeds uit als volgt:
- Op de eerste plaats gebeurt er op de audio data een tijd-frequentie mapping. Dit kan
zijn een FFT en filterbank een wavelet decompositie enz.
- Een psychoakoestisch model bekijkt de signalen in de afzonderlijke subbanden en
ook het origineel signaal en determineert voor elk van hen een maskeerdrempel
. Eenmaal deze drempels vast gelegd , wordt per band elke sample gequantiseerd en
gecodeerd op zulke wijze dat de optredende quantisatieruis beneden de maskeerdrempel
blijft!
- De laatste stap bestaat erin al deze gequantiseerde samples te verzamelen in een frame
zodat de decoder op een gepaste manier de sampel terug kan samenstellen tot afspeelbare
audio. De taak van de decoder is veel eenvoudiger daar hij geen last meer heeft van
het psycho-akoestisch model.
|
|
Een praktisch SBC systeem : MPEG-I AUDIO
Mpeg-I Audio bestaat infeite uit drie SBC schema's ,layers genaamd.Elk van hen heeft
zijn eigen typische tijd-frequentie mapper zijn psychoakoestisch model en zijn quantisatie
en codering. Layer 1 is de simpelste maar geeft de slechtste compressie .Layer 3 is veruit
de meest gesofistikeerde en moeilijk te compileren maar geeft een uitstekende
compressie. Elke decoder kan dienst doen als decoder voor een lagere layer. Mpeg-1 kan elk
audiosignaal in PCM en gesampeld aan 32 , 44.1 of 48 kHz coderen.
Kenmerken van mpeg-I layer 1 = mp1
- De tijd-frequentie-mapping bestaat uit een polyfase filterbank bestaande uit 32
subbanden met gelijke bandbreedten en gebruikt dus geen kritische bandbreedten .
- Het psychoakoestisch model gebruikt een 512-punt FFT die een gedetaileerde frequentie
inhoud geeft van de signalen in de subbanden.Deze ontbinding wordt gebruikt om zowel
tonale als niet tonale maskeerders te vinden.Elke maskeerder legt een maskeerdrempel vast
afhankelijk van zijn frequentie ,zijn intensiteit en tonaliteit.Alle maskeerdrempels in
een subband worden dan gecombineerd tot één maskeerdrempel voor deze subband. Deze
maskeerdrempel wordt dan vergeleken met de maximale signaalsterkte in de subband en
produceert dan een signaal-tot-maskeerder verhouding welke de input is voor de
quantisator.
- De quantizer/encoder onderzoek de samples in elke subband om de maximale signaalsterkte
in de subband te vinden en quantiseert deze in 6 bits . Dit is de schaalfactor voor de
subband.Dan wordt de ideale bit allocatie gezocht voor de subband die een minimum
geeft voor de ruis-tot-maskeerder verhouding. Tenslotte worden de samples in de subband
lineair gequantiseerd met de gevonden bit allocatie.
- De frame packer begint met een header die informatie geeft over de synchronisatie ( 12
bit) en de gebruikte boekhouding (20 bit) tesamen met een 16-bit cyclus
redundantietest CRC ) voor foutdetectie en correctie hiervan. Elk van de 32
subbanden krijgt een 4 bits om de bit allocatie te beschrijven en 6 bits voor de
schaalfactor .De overige bit slaan op de subband samples met een optionele trailer op het
einde die bijkomende informatie kan bevatten.
|
|
Elke frame handelt over 384 PCM audio samples en beslaat dus 8ms audio ( voor een
sampling frequentie van 48 kHz )
figuur : structuur van één frame
Kenmerken van mpeg-I layer 2 = mp2
- De tijd-frequentie mapping is dezelfde als in mp1.
- Het psychoakoestisch model is gelijkaardig als deze in mp1 maar gebruikt een 1024-punt
FFT met dezelfde algoritmen als in mp1.
- De quantizer/encoder is gelijkaardig als deze in mp1 maar de frames zijn driemaal langer
als in mp1. Dus elke informatieblok in bovenstaande figuur wordt gesplitst in
drie doordat elke subband wordt gesplitst in een lage-midden en hoge subband . Op die
manier komt men dicht bij een kritische band opdeling van het signaal .Naargelang de
verschillen tussen deze onderdelen worden alle drie , twee of slechts één van hen
gebruikt . Dit geeft globaal een factor 2 reductie in de bitrate voor de
schaalfactoren.
- De frame packer gebruikt dezelfde header en CRC als deze in mp1. Het aantal bits dat
gebruikt wordt om de bit allocatie te beschrijven varieert : 4 bits voor de lage subband ,
3 voor de midden en 2 bits voor het hogere subbandonderdeel . De schaalfactoren ( één
twee of drie naargelang de data ) worden gecodeerd met 6 bits tesamen met een 2 bit
informatie betreffende de combinatie van schaalfactoren dat wordt gebruikt.De subband
samples worden gequantiseerd in overeenstemming met de bit allocatie en dan gecombineerd
in groepen van drie ( de granules) . Elk granule wordt vervolgens gecodeerd met één
codewoord.
Elk frame beslaat nu uit 1152 PCM audio inputs met een duur van 24 ms voor 48kHz
sampling frequentie. De hoogste kwaliteit ,gelijkwaardig aan CD kwaliteit , wordt bereikt
met een bit rate van 256k bps .Soms is 64k bps nog aanvaardbaar (?) ! !!
Kenmerken van mpeg-I layer3 = mp3
Layer 3 is substantiëel complexer dan de vorige .In de eerste plaats gebruikt het een
opsplitsing van het signaal in kritische banden ( dus de frequentieas wordt niet-lineair
opgesplist in barken).Het psychoakoestisch model gebruikt ook tijdsmaskering naast
frequentiemaskering , polynome regressies , gesofistikeerde quantisaties en
coderingschemas welke toelaten variabele framelengtes te gebruiken. Huffman coderingen
worden ook gebruikt. De frame packer heeft dan ook veel meer werk en bezit tevens
een bitreservoir om aangepaste bitallocaties te genereren voor signaaldelen die dat nodig
blijken te hebben.
Stappen in het algoritme
In grote lijnen gebeurt de compressie dus alsvolgt.
- Gebruik convolutiefilters om het audio signaal op te delen in 32 banden die eventueel
de kritische banden kunnen zijn: subband filtering
- Bepaal vervolgens de grootte van het maskeereffect in elke band door de naburige
subbanden.Hier speelt het psychoakoestisch model een belangrijke rol.
- Als het vermogen in een subband beneden deze drempel ligt wordt hij niet gecodeerd!
- In het andere geval wordt het aantal bits vastgelegd die nodig zijn voor de amplituden
zodanig dat de geïntroduceerde quantisatieruis beneden deze drempel blijft :1 bit
quantisatie komt overeen met 6 dB aan ruis!
|
|
Een voorbeeld om de methode toe te lichten
Veronderstel dat na tijd-frequentiemapping de amplituden van de eerste 16 banden van de
32 banden devolgende niveau's hebben
band |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
dB |
0 |
8 |
12 |
10 |
6 |
2 |
9 |
58 |
35 |
20 |
15 |
4 |
3 |
5 |
4 |
2 |
|

|
Het niveau in de 8ste band is 58 dB . Hij is duidelijk een
maskeerder.De drempelwaarden voor simultane maskering leiden wij af uit de maskeercurven . Deze geven een drempelwaarde van
12 dB voor de 7de band en een waarde van 15 dB voor de 9de band.Gezien het niveau in
band 7 slechts 9 dB bedraagt kan deze weggelaten worden.Gezien daarentegen het niveau van
band 9 namelijk 35 dB is moet deze gecodeerd worden.Een 2 bit codering zal volstaan opdat de te
coderen subbanden boven de quantisatieruis ( 2 bits = 12 dB) zouden blijven. |