Springen naar inhoud

Bestandscompressie


  • Log in om te kunnen reageren

#1

klazon

    klazon


  • >5k berichten
  • 6609 berichten
  • Pluimdrager

Geplaatst op 22 januari 2010 - 11:43

De laatste tijd ben ik nogal bezig met het monteren van geluidsbestanden. De meest straightforward manier van digitaal geluid opslaan is het wav formaat. En de meest voorkomende variant schijnt die te zijn waarbij per seconde 44100 samples worden genomen van 16 bits. Een rekensommetje levert op dat dat per minuut 10,1MB kost.

Als je zo'n wav bestand omzet naar mp3 dan wordt het bestand ineens een stuk kleiner, iets in de orde van 15% van het origineel.

Mijn vraag is nu wat het principe achter deze compressie is. Het hoeft niet in detail, maar ik wil gewoon een beetje inzicht krijgen in wat er bij een compressie gedaan wordt om dezelfde informatie ineens in veel minder bits te vangen.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Ger

    Ger


  • >5k berichten
  • 16444 berichten
  • Technicus

Geplaatst op 22 januari 2010 - 11:53

Simplistisch (veel dieper weet ik het ook niet :eusa_whistle: ):
WAV slaat simpelweg alles van het geluid op. Niet bijzonders aan.

MP3 daarentegen, laat (redelijk) veel weg. Stel, er is een luide toon op 200Hz. Als er tegelijk een zachte toon op 199Hz is, kan een mens die niet onderscheiden. MP3 laat die toon van 199Hz weg, en een mens merkt daar niets van. Daarnaast heb je vaak ook te maken met geluiden die zowel in het linker- als in het rechterkanaal voorkomen. WAV slaat die separaat op, MP3 slaat die 1x op en laat het gebruikte programma dat geluid 2x afspelen (links en rechts tegelijk).

De eerste manier van compressie (tonen weglaten) kan op verschillende manier gedaan worden. Bij de luide toon van 200Hz kan bijvoorbeeld alleen de zachte toon van 199Hz en 201Hz worden weggelaten, maar ook alles tussen 195Hz en 205Hz (behoudens 200Hz zelf natuurlijk). De hoor je terug in de kwaliteiten.
"Knowledge speaks, but wisdom listens."
- Jimi Hendrix -

#3

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 22 januari 2010 - 12:16

Wat Ger beschrijft is dus o.a. Joint Stereo. Meer info over mp3 vind je hier.

Een ander formaat dat ongeveer gelijke bestand groottes geeft is Ogg Vorbis. Aangezien deze techniek "open source" is ga je hierover veel informatie terugvinden.
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#4

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 22 januari 2010 - 12:22

MP3 daarentegen, laat (redelijk) veel weg. Stel, er is een luide toon op 200Hz. Als er tegelijk een zachte toon op 199Hz is, kan een mens die niet onderscheiden. MP3 laat die toon van 199Hz weg, en een mens merkt daar niets van.

Niet helemaal. Het is de quantisatie die met minder bits gebeurt.
Muziek wordt opgesplitst in 32 subbanden, en naargelang het 'volume' rond een bepaald tijdstip in een bepaalde subband en de subbanden er naast, wordt de baudrate verdeelt over de banden.

Dus waar bij 32-bit wav iedere sample zich op 2^32 niveaus kan bevinden, varieert dit aantal bits bij de 32 subbanden van de (de)coder, en is ze over het algemeen veel minder. Dus op een gegeven moment kan een sample van de subband maar voorgesteld worden door 4 bits i.p.v. 32.

Je zou kunnen denken dat dit het aantal bits juist doet toenemen (er zijn namelijk 32 subbanden en dus 32x4=128 bits), maar door subbandcodering je minder samples nodig hebt om de lage frequenties weer te geven (Nyquist). Dus is samplen aan de uitgang van een lage subband tegen 44kHz niet nodig, en volstaat bijvoorbeeld 200 Hz. Alles samen heb je dan een aanzienlijke besparing.

En nu snap je (hopelijk) ook waar de schizzle op de hoge tonen van mp3 vandaan komt. Als er enkel vooral hoge tonen in zitten, kan mp3 niet besparen aan samplefrequentie, en dus wordt er (te weinig) bits gebruikt voor de hoge frequenties...

Daarnaast zitten er nog heel wat andere compressies, e.d. in. Eigenlijk laten ze gewoon heel erg veel informatie weg die een mens toch niet kan horen en staan ze een maximale hoeveelheid (60dB) ruis toe.
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#5

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 22 januari 2010 - 13:06

Ik merk een wezenlijk verschil tussen sommige mp3 en cd's.

Eigenlijk laten ze gewoon heel erg veel informatie weg die een mens toch niet kan horen

Voorbeelden?
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#6

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 22 januari 2010 - 13:22

Voorbeelden?

Die verminderde quantisatie is toch daar een voorbeeld van? Of de lagere samplerate bij lage tonen? Maar daarnaast ook nog:

The MPEG/audio algorithm compresses the audio data in large part by removing the acoustically irrelevant parts of the audio signal. That is, it takes advantage of the human auditory system's inability to hear quantization noise under conditions of auditory masking. This masking is a perceptual property of the human auditory system that occurs whenever the presence of a strong audio signal makes a temporal or spectral neighborhood of weaker audio signals imperceptible. A variety of psychoacoustic experiments corroborate this masking phenomenon[13].

Die masking gebeurt zowel in tijd- als in het frequentiedomein.

Een lange lijst kun je hier vinden.

Overigens is er inderdaad een verschil. Maar bij mp3's met een bitrate van 128 of meer moet je al een bijzonder goede audio-installatie hebben voordat de SRV van de mp3 zelf boven de SRV van je installatie uitkomt...
Het probleem is dat mp3's soms/vaak gecodeerd worden vanuit muziek met een lagere bitrate, of door een slechte encoder...
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#7

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 22 januari 2010 - 13:30

Overigens is er inderdaad een verschil. Maar bij mp3's met een bitrate van 128 of meer moet je al een bijzonder goede audio-installatie hebben voordat de SRV van de mp3 zelf boven de SRV van je installatie uitkomt...

Die goed audioinstallatie heb ik. Waarvoor staat SRV?
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#8

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 22 januari 2010 - 14:33

Die goed audioinstallatie heb ik. Waarvoor staat SRV?

Signaal-ruis-verhouding. SNR is het engelse, Signal-noise-ratio.
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#9

klazon

    klazon


  • >5k berichten
  • 6609 berichten
  • Pluimdrager

Geplaatst op 22 januari 2010 - 16:35

Niet helemaal. Het is de quantisatie die met minder bits gebeurt.
Muziek wordt opgesplitst in 32 subbanden, en naargelang het 'volume' rond een bepaald tijdstip in een bepaalde subband en de subbanden er naast, wordt de baudrate verdeelt over de banden.

Ik kan je betoog niet goed volgen. Wat bedoel je met subbanden?
Uitgaande van een wav bestand, dit bestaat toch uit een reeks 32-bits digitale getallen?
Wat voor weglatingen of combinaties worden er dan gemaakt om de informatie in minder bits te kunnen opslaan?

#10

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 22 januari 2010 - 17:01

Ik kan je betoog niet goed volgen. Wat bedoel je met subbanden?
Uitgaande van een wav bestand, dit bestaat toch uit een reeks 32-bits digitale getallen?
Wat voor weglatingen of combinaties worden er dan gemaakt om de informatie in minder bits te kunnen opslaan?

Wel, de frequenties 0-200Hz; 200-600Hz; 600-1400Hz enz. worden steeds afgezonderd van elkaar. 1 zo'n groep frequenties noemt men een subband. Bij mp3 zijn er dus 32 zulke subbanden.
Iedere subband is dus eigenlijk een volledig wav-bestand op zich, maar bevat enkel bepaalde frequenties.

Maar er zijn 2 grote compressies die er daarna op toegepast kunnen worden:
1) lage frequenties (subbandden) hebben een veel kleinere sampling-rate nodig (Nyquist)
2) als een subband een klein volume (energie) heeft t.o.v. zijn omgeving (in tijd en frequentie), worden er minder bits gebruikt om te quantiseren. Dus ipv 32-bit getallen worden er 4-bit, 5-bit, 13-bit getallen opgeslagen...

Van de precieze cijfers heb ik geen weet, maar het is om een idee te geven :eusa_whistle:

Veranderd door 317070, 22 januari 2010 - 17:02

What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#11

klazon

    klazon


  • >5k berichten
  • 6609 berichten
  • Pluimdrager

Geplaatst op 22 januari 2010 - 17:18

Wel, de frequenties 0-200Hz; 200-600Hz; 600-1400Hz enz. worden steeds afgezonderd van elkaar. 1 zo'n groep frequenties noemt men een subband.

Sorry hoor, maar ik kan dit nauwelijks geloven.

Het totale geluidbeeld wordt 44100 keer per seconde gesampeld als een 16-bits getal. Die getallen komen in een wav-bstand domweg op een rij te staan. Daarin zijn de afzonderlijke frequenties toch niet meer te herkennen? Om dat dan toch weer in frequentiebanden uiteen te rafelen vergt een enorme rekenpartij. En ik kan me nauwelijks voorstellen dat ze dat zo doen.

Ik heb de wiki-link van jhnbk bekeken, en hoewel ik daar ook niet veel van snap vind ik daar niet in terug dat het bestand in frequenties uit elkaar getrokken wordt.

#12

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 22 januari 2010 - 17:37

Om dat dan toch weer in frequentiebanden uiteen te rafelen vergt een enorme rekenpartij. En ik kan me nauwelijks voorstellen dat ze dat zo doen.

Dit is toch gewoon een convolutie met het impulsantwoord van een banddoorlaatfilter? Dit gebeurt snel hoor, en overal om je heen. Overal waar je een equalizer hebt zit er zoiets achter. En als je me nauwelijks gelooft: zie ook dit (laatste regel). :eusa_whistle:

Waarom zouden de frequenties daar niet meer in te herkennen zijn? Alle frequenties tot 22500Hz zijn toch op een quantisatiefout na perfect te reconstrueren? :lol:

Veranderd door 317070, 22 januari 2010 - 17:39

What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#13

klazon

    klazon


  • >5k berichten
  • 6609 berichten
  • Pluimdrager

Geplaatst op 22 januari 2010 - 23:59

Het kan zijn dat ik een volkomen verkeerd beeld heb van de manier waarop digitaal geluid wordt opgeslagen.
Maar als van een totale geluidsclip 44100 keer per seconde een sample wordt genomen, dan is toch aan een enkel sample niet meer te zien welke frequenties daarin zitten? Het is gewoon de digitale representatie van de gecombineerde signaalspanning op dat moment.
Wil je daaruit de afzonderlijke frequenties terug halen, dan moet je de data over meerdere samples analyseren. Dat bedoel ik met een flinke rekenpartij.

En zelfs als de frequenties al opgesplitst worden in banden, dan zie ik nog niet wat daarvan het voordeel is.
Je zegt b.v. dat er een band is van 200 tot 600 Hz. Dat is al meer dan 1 octaaf. Hoe haal je daarbinnen dan de afzonderlijke frequenties uit elkaar?

Kijk, het is niet mijn opzet om je tegen te spreken, maar mijn verwarring is intussen alleen maar groter geworden, terwijl ik juist probeer om te begrijpen wat er gebeurt. En dat laatste lukt dus nog niet erg.

#14

Benm

    Benm


  • >5k berichten
  • 8799 berichten
  • VIP

Geplaatst op 23 januari 2010 - 00:41

De opzet is ook niet om uit 1 sample frequenties te reconstrueren. Zoals je terecht opmerkt is dat niet mogelijk, 1 enkel sample kan geen frequentie informatie geven.

Mp3 compressie werkt in de regel met frames ('blokjes' van 1/30e seconde) waarvan de inhoud eerst wordt omgezet naar informatie in frequentie en tijddomein, waaruit vervolgens niet-hoorbare informatie via een psycho-acoustisch model kan worden verwijderd. In de praktijk is het daarmee mogelijk een stereosignaal transparant (onhoorbaar voor de grote meerderheid van test luisteraar) tenminste een factor 10 in omvang te reduceren, vaak nog wel meer dan dat.

Overigens is dat relatief weinig vergeleken met videocompressie waarbij je factors ver boven de 100 ziet zonder dat de kijker er iets van door heeft.
Victory through technology

#15

klazon

    klazon


  • >5k berichten
  • 6609 berichten
  • Pluimdrager

Geplaatst op 23 januari 2010 - 11:00

Mp3 compressie werkt in de regel met frames ('blokjes' van 1/30e seconde) waarvan de inhoud eerst wordt omgezet naar informatie in frequentie en tijddomein, waaruit vervolgens niet-hoorbare informatie via een psycho-acoustisch model kan worden verwijderd.

Kijk, dit antwoord, al is het heel basic, spreekt mij wel aan. De samples worden dus pakketsgewijs geanalyseerd. Blijkbaar toch een hele rekenpartij.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures