MP3 er en forkortelse for MPEG-1 Audio Layer 3. "MPEG" er i sig selv en forkortelse af Moving Picture Experts Group - den officielle titel af et udvalg, dannet i regi af Den Internationale Standardiseringsorganisation (ISO) og Den Internationale Elektrotekniske Kommission (IEC), med henblik på at udvikle en international standard for en effektiv kodning af video og lyd i høj kvalitet. Planen var at finde en metode til komprimering af audio- og videodata så det ville være muligt at lagre dem på, og hente dem fra, en enhed, der leverer omkring 1,5 millioner bits per sekund, som eks. på en almindelig cd-rom. Resultatet blev offentliggjort i 1993 som MPEG-1 standarden.
Analysefilter opdeler lydafsnit i 32 frekvens-delbånd
Det første krav for at kunne skabe en MP3-data stream er en eksisterende PCM lyd stream. MP3 bør opfattes ikke som en selvstændig metode til digital optagelse, men snarere som en proces til at fjerne irrelevant data fra en eksisterende optagelse. Lyden, der skal kodes, vil typisk være 16-bit, og der understøttes sample frekvenser på 32 kHz, 44,1 kHz og 48 kHz. Den første fase af processen indebærer at tage korte afsnit fra den originale PCM stream og behandle dem med, hvad der er kendt som et analysefilter. MPEG-1-standarden angiver ikke præcist, hvordan dette filter skal være bygget men kun, hvad den skal gøre, men typiske MP3 encodere bruger variationer af matematiske algoritmer som "Fast Fourier Transformation" (FFT) og "Diskret Cosinus Transformation" (DCT). Effekt af filteret er at hvert lydafsnit i filen opdeles i 32 del-bånd, som repræsenterer forskellige dele af frekvensspektret i det originale signal.
Markering af relevante og irrelevante frekvens-delbånd
MP3 bruge perceptuel kodning til at adskille 'irrelevant' lyd og 'relevant' lyd, og til at behandle hver slags forskelligt. Ved at adskille lydsektioner til del-bånd er det muligt for MP3-komprimeringen at sortere forskellige former for lyde ud fra deres frekvensindhold - og så at prioritere nogle frem for andre, i overensstemmelse med kravene i den psykoakustiske model. Eksempelvis kan en PCM-optagelse både indeholde overvejende lavfrekvente lyde som en stortromme; overvejende højfrekvente lyde som et bækken; samt lyde midt imellem som vokaler. Hvis der i ovenstående eksempel var nogle af de lavfrekvente lyde i stortrommen, der blev anset for at være irrelevant, kunne komprimeringen bruge færre bits til at repræsentere dette del-bånd, der indeholder disse frekvenser, hvorved der bliver flere bits fri til at repræsentere de del-bånd, der indeholder nogle af de frekvenser fra vokalen, der eventuelt er mere 'relevante' for en lytter, og dermed mere følsomt for forvrængning og støj forårsaget af en lavere bithastighed.
Sampling af frames
I den næste fase af processen bliver del-bånds sektionerne samlet i frames. Indholdet af disse frames bliver undersøgt i et forsøg på at bestemme, hvor maskering i både frekvens- og tids-domæner vil opstå, og dermed som de enkelte frames kan få lov til at forvrænge. "Maske-til-Støj" (Mask-to-Noise) forholdet for hver frame beregnes, og disse oplysninger bliver benyttet i den afsluttende fase af processen: bit-tildeling.
Under bit-tildelingen bliver det besluttet, hvor mange bits, der skal bruges til at repræsentere hver frame. Jo flere bits, der er tilladt, jo mere effektiv kan repræsentationen være. Det er derfor nødt at afsætte flere bits til frames, hvor lidt eller ingen maskering kan forventes - men kan tillade sig at tildele færre bits til frames, hvor mere maskering er sandsynlig. Det samlede antal bits til rådighed varierer alt efter den ønskede bithastighed for overførslen, som er udvalgt før komprimeringen begynder efter brugerens behov. Hvor lydkvaliteten var en høj prioritet blev der i årene omkring år 2000 benyttet en hastighed på 128 kilobit per sekund (kbps). I dag anser man en hastighed på 192 kbps eller mere som en god kvalitet.
Huffman Coding & Header til afkodning
Hver frames gemmes med header data, som fortæller hvordan framen er pakket og til sidst til sidst pakkes filen via *Huffman coding*. Den resulterende fil kan derefter læses af en MP3 dekoder, og spilles som audio. En MP3-dekoder udfører en forenklet omvendt form af komprimeringsprocessen. Del-bånd frames 'genopbygges' i tid-domæne sektioner (ved hjælp af en omvendt form af analysefiltereret), og ender op med at genskabe en audio stream. Men da komprimeringsprocessen har lagret oplysninger om bit-allokering i hver frame i headerinformationen, så er det ikke nødvendigt for dekoderen at træffe sådanne beslutninger selv. Derfor har en dekoder meget mindre arbejde at gøre. En dekoder kan derfor gennemføres i et noget enklere program eller enhed end en enkoder - hvilket formentlig forklarer, hvorfor der er så meget mere software til afspilning af MP3-filer til rådighed end software til komprimering.
Header i mp3-filer
Åbn en mp3-fil i en Binary viewer og/eller en Hex editor og undersøg, hvad der står headeren og hvordan "lyden" ser ud som data.
I freewaren HexEdit kan du få hjælp, da den udpeger hvilke dele der er headere m.m. i forskellige filtyper. - Åbn en mp3, klik på 'Template' så på 'Open file type' og vælg 'mp3' - se billedet!.