[MP3] Werking van MP3 bestanden.

Pagina: 1
Acties:
  • 146 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • LittleWan
  • Registratie: Februari 2003
  • Laatst online: 26-06 14:23
Ik ben op zoek naar de werking van een MP3. Ik zoek de indeling van de bestanden en de coderingstechniek/methode. Ik ben niet op zoek naar een blokschema'tje of zo, maar naar de puur technische kant. Ik zou toch zeker 30 bladzijden vol moeten hebben. Het mag diep technisch zijn tot op het DSP niveau (liefst zelfs).
Ik heb het internet al suf gezocht naar informatie over MP3 bestanden. 99% van de site kan je liedjes downloaden en 90% van de sites waar dan iets technisch over staat is veel te eenvoudig of te weinig.
Ik gebruik misschien de verkeerde zoekthermen maar ik zou niet meer weten wat te gebruiken.
Misschien zijn er hier mensen die dit al eens opgezocht hebben of hier meer over weten.
Alvast bedankt.

http://www.sillevl.be - blog http://www.sillevl.be/blog - flickr http://www.flickr.com/sillevl


Acties:
  • 0 Henk 'm!

  • Tijntje
  • Registratie: Februari 2000
  • Laatst online: 16:10

Tijntje

Hello?!

Als het niet gaat zoals het moet, dan moet het maar zoals het gaat.


Acties:
  • 0 Henk 'm!

  • LittleWan
  • Registratie: Februari 2003
  • Laatst online: 26-06 14:23
die had ik ook al lang gevonden, ik vind het nogal weinig wat daar op staat.
Graag had ik geweten hoe alles meer tot op bit en byte niveau verwerkt wordt...

http://www.sillevl.be - blog http://www.sillevl.be/blog - flickr http://www.flickr.com/sillevl


Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 14-06 16:43

Varienaja

Wie dit leest is gek.

Uit een werkstuk van mij:
2.2 MPEG-1 Audio
Om te begrijpen wat MPEG-1 audio is moet men eerst weten hoe geluid op wordt geslagen in een computer. Geluid bestaat uit geluidsgolven, hetgeen drukverschillen in de lucht zijn. Als deze drukverschillen worden opgevangen door een microfoon, worden ze omgezet in voltage niveau’s. Dit voltage wordt een aantal keer per seconde gemeten (gesampled). Voor geluid van CD-audio kwaliteit moet men 44100 keer per seconde het ingangssignaal meten. Elk van die samples heeft dan een resolutie van 16 bits. Als men dan het geluid in stereo opneemt, krijgt men 44100*16*2 = 14411200 bits per seconde (1,44Mbit/s) te verwerken. Dat is behoorlijk veel en men kan hopelijk de noodzaak van compressie hieruit afleiden.
Om audio te comprimeren probeert MPEG de irrelevante stukken van het signaal te verwijderen. De delen van het geluid die we toch niet kunnen horen, kunnen immers weggegooid worden, zodat er minder data overblijft. Om dit te verwezenlijken gebruikt MPEG psycho-akoestische principes.

2.2.1 Compressie
Om audio te comprimeren heeft men eigenlijk maar twee alternatieven. Of men verlaagt de samplingfrequency (het aantal keren per seconde dat het signaal gemeten wordt) of men meet met een lagere resolutie (minder dan 16bits per sample). Als de geluidskwaliteit behouden moet blijven dan mag er niet veel met de samplingfrequency gebeuren. Het menselijke oor kan geluiden horen met frequenties van ongeveer 20Hz tot ongeveer 20KHz. Overeenkomstig met het theorema van Nyquist moet de samplingfrequency minstens twee keer zo hoog zijn als de hoogste frequentie die men wil reprocuderen. Als men dan rekening houdt met gebrekige filters is een samplingfrequency van 44100Hz een mooi minimum. Men kan dus òf bewijzen dat het theorema van Nyquist onjuist is òf proberen de resolutie van de samples te verlagen. Het MPEG comité koos voor de laatste oplossing.
De reden om een resolutie van 16bits voor alle samples te gebruiken is om een goede signaal-ruis (s/r) verhouding te verkrijgen. Deze ruis is de quantization ruis van het digitaliseringsproces. Voor elke bit waarmee de resolutie wordt verhoogd, wordt de s/r verhouding 6dB beter. (Voor het menselijke oor correspondeert 6dB extra met een verdubbeling van het geluidsniveau.) CD-audio bereikt een s/r verhouding van 90dB, wat redelijk goed in de buurt komt van het dynamische bereik van het menselijke oor. Dit wil zeggen dat men geen ruis hoort komen van het systeem zelf. Wat gebeurt er nu als een resolutie van 8bits wordt gebruikt voor een opname? Er onstaat dan een zeer duidelijk aanwijsbare ruis in zo’n opname. Deze is dan goed hoorbaar in zachte stukken in de muziek of tussen woorden of zinnen bij de opname van een stem. Tijdens luide stukken is de ruis echter niet hoorbaar! Dit wordt het masking effect genoemd en is de sleutel tot MPEG audio codering. Het masking effect behoort tot een wetenschap die de psycho-akoestiek wordt genoemd en deze bestudeert de manier waarop de menselijke hersenen geluid waarnemen. En zoals gezegd, gebruikt MPEG deze psycho-akoestische principes om audio-signalen te comprimeren.

2.2.2 Masking effect
Stel dat er een luide toon met een frequentie van 1000Hz aanwezig is en er ook een tweede toon, in de buurt van die 1000Hz, aanwezig is. Als deze toon bijvoorbeeld 1100Hz en 18dB minder luid is, dan zal deze tweede toon niet hoorbaar zijn voor het menselijke oor. Hij wordt compleet gemasked door de eerste toon. Eigenlijk is het zo dat elk relatief zwakke geluid met een frequentie in de buurt van die van een sterk geluid gemasked wordt. Als er nu nog een toon is, met een frequentie van 2000Hz en ook 18dB minder luid dan de eerste 1000Hz toon, dan is deze wèl hoorbaar. De 2000Hz toon zal verzwakt moeten worden tot 45dB onder het niveau van de 1000Hz toon voordat hij gemasked wordt door de eerste 1000Hz toon. Hoe meer de frequenties van geluiden afwijken van die van een sterk geluid hoe kleiner het masking effect van dat sterke geluid wordt. Door dit masking effect is het mogelijk de signaal-ruis verhouding te verlagen in de buurt van een sterk geluid, omdat de ruis dan gemasked wordt door het sterke geluid. Het verlagen van de signaal-ruis verhouding is te verwezenlijken door een resolutie van minder bits te gebruiken en minder bits gebruiken is hetzelfde als compressie.
Dit deel van het masking effect heet concurrent (gelijktijdige) masking. Maar het masking effect treedt ook op voor en na een sterk geluid (pre- en postmasking). Men is in veronderstelling dat als er een grote verandering (30-40 dB) in het geluidsniveau optreedt, de menselijke hersenen een kleine aanpassingstijd nodig hebben. Premasking heeft dan 2 tot 5 ms effect, terwijl postmasking tot 100 ms na het sterke geluid kan optreden.

2.2.3 MPEG codeer algoritme
Het MPEG codeer algoritme gaat als volgt te werk. Het deelt het frequentie spectrum (20Hz tot 20KHz) op in 32 sub-banden. Elke sub-band bevat zo een klein deel van het audio spectrum. Stel dat er in het bovenste gedeelte van sub-band 8, een 1000Hz toon met een geluidsniveau van 60dB aanwezig is. Het algoritme berekent dan het masking effect van dit geluid en komt erachter dat er een masking treshold (drempel) is voor de gehele 8ste sub-band 35dB onder deze toon. De acceptabele s/r verhouding is dan 60 - 35 = 25 dB. Dit komt overeen met een resolutie van 4bits. Zo zijn er dan ook masking effects op de banden 5-7 en 9-13, maar het effect wordt steeds minder naarmate de afstand tot band 8 groter wordt. In een real-life situatie zijn er masking geluiden in bijna alle sub-banden en zijn de masking effects cumulatief. Verder houdt het algoritme rekening met de gevoeligheid van het menselijke oor voor verschillende frequenties. Het oor is heel wat minder gevoelig in de hoge en lage frequenties. Het is het gevoeligst bij 2-4KHz, hetzelfde frequentie gebied dat de menselijke stem beslaat.
De sub-banden zouden het menselijke oor moeten benaderen, dat wil zeggen dat zij louter zouden moeten bestaan uit frequenties die dezelfde psycho-akoestische eigenschappen hebben. In MPEG-1 Layer 2, is elke sub-band 625Hz breed. Voor het beste resultaat hadden de sub-banden smaller moeten zijn in het lage frequentie gedeelte en breder in het hoge frequentie gedeelte. Om dit voor elkaar te krijgen zijn er normaal gesproken erg complexe filters nodig. Om de filters toch simpel te houden heeft MPEG ervoor gekozen om Fast Fourier Transformaties (FFT) toe te passen en de resultaten van de FFT te gebruiken als extra informatie voor het codeer algoritme. Zodat er in de lage frequenties, waar het oor gevoeliger is een hogere resolutie wordt verkregen.
Er worden nog meer technieken toegepast om minder bits te hoeven gebruiken. Zo is er veel redundantie tussen kanalen als er sprake is van een stereo signaal. Tenslotte wordt er nog Huffman coding toegepast.

2.2.4 Compressie ratio’s
MPEG kan een geluidssignaal comprimeren tot een bitstream van 32Kbit/s tot 384Kbit/s (Layer II). Een raw (onbewerkte) PCM audio bitstream heeft een bitrate van ongeveer 705Kbit/s, zodat een maximale compressie ratio van ongeveer 1:22 ontstaat. Onder normale omstandigheden moet men eerder denken aan een compressie ratio van 1:6 of 1:7. Als men dit vindt tegenvallen moet men er wel bij stilstaan dat het hier om audiocompressie gaat zonder merkbaar kwaliteitsverlies. 96Kbit/s wordt gezien als een transparante bitrate voor de meeste doeleinden. Dit betekent dat men geen enkel verschil hoort tussen het originele en het gecomprimeerde signaal voor rock’n roll of populaire muziek. Voor veeleisende stukken muziek zoals piano concerten en dergelijke moet men denken aan een bitrate van 128Kbit/s.

Bij MP3 (MPEG-1 Layer III) bestanden is het vaak zo dat er van een digitale CD-kwaliteit bron een 128Kbit/s bitstream wordt gemaakt. De bitrate wordt dan verlaagd van 1,44Mbit/s naar 128Kbit/s om zo een compressie ratio van ongeveer 1:11 te verkrijgen.
toon volledige bericht
edit:
Ik gok dat je bij het lame open-source project wel informatie moet kunnen vinden over de bits en bytes in een mp3-bestand.

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • bartvl
  • Registratie: Oktober 2002
  • Nu online

bartvl

Vlieg! Kan ik niet. Te laat...

Lijkt mij duidelijk!

Life is not about specs, it is about joy!


Acties:
  • 0 Henk 'm!

  • Henk007
  • Registratie: December 2003
  • Laatst online: 06-04 00:29
Oei! Hoeveel tijd heb je :)
Je zou eens kunnen beginnen bij dit overzichtje van Gabriel Bouvigne (LAME developer)
Verder kun je de source code van een paar encoders/decoders (hier) kunnen bestuderen.
Dit topic op HA.org geeft informatie over boeken en links die je ter voorbereiding op de benodigde discrete wiskunde kunt gebruiken.
Ben je het komende jaartje wel zoet dacht ik zo.

Edit: het werkstukje van Varienaja is helemaal niet slecht, heel aardig zelfs als uiterst versimpelde uitleg van het algoritme. Alleen FFT wordt in het mpeg layer 3 algoritme niet gebruikt, althans in een andere vorm, namelijk MDCT.

[ Voor 49% gewijzigd door Henk007 op 05-04-2005 17:52 ]

Pagina: 1