Lossy audiocodering. Wat is wat?

.
De evolutie van audiocodering

Het is 2020, het is jaren geleden dat de eerste MP3-encoder verscheen. Maar dat de meesten van ons nog steeds rustig naar mp3-muziek luisteren, wil niet zeggen dat er al die tijd vooruitgang is geboekt. En dit geldt niet alleen voor de ontwikkeling van het MP3-coderingsalgoritme, maar ook voor de evolutie van lossy audiocodering in het algemeen, in de vorm van nieuwere en geavanceerdere codecs waarmee je eigenlijk een betere kwaliteit kunt krijgen in een kleiner formaat. . Formaten zoals OGG Vorbis, AAC, WMA, Musepack hebben verouderde MP3 achtergelaten met zijn vele beperkingen en gebreken.
Tegelijkertijd wint verliesloze codering aan kracht. Maar vanwege de grote hoeveelheid gegevens is het vandaag de dag nog steeds niet geschikt voor grootschalig gebruik, vooral voor draagbare apparaten met beperkt geheugen, voor streaming op het netwerk en alleen voor het snel delen van muziek op internet (ik moet toegeven dat niet alle 100 megabit internettoegang is niet altijd bij de hand).
En dus is MP3 verouderd en zeker klaar om te worden vervangen. Maar hoe zit het met de niet-ingewijde gebruiker, maar wie wil de hoogste geluidskwaliteit bereiken met de minste hoeveelheid geheugen? Er zijn tenslotte nogal wat alternatieve codecs (er zijn er tenminste drie die echt de aandacht verdienen): Apple promoot het AAC-formaat (Advanced Audio Coding, gepositioneerd als de opvolger van MP3) via zijn iTunes Store, Microsoft, zijn eigen WMA-licentie (Windows Media Audio), bovendien wordt OGG Vorbis steeds bekender, en speciaal geïllustreerde mensen gebruiken zelfs een formaat als Musepack. Welke van deze codecs moet ik kiezen?
Er is geen definitief antwoord op deze vraag, en daarom schrijf ik dit artikel.
Hoe te beslissen?
De keuze voor de ene of de andere codec hangt af van de specifieke taak. Namelijk:
1. Vanaf de apparatuur en software waarmee het geluid zal worden weergegeven. Die. over de beschikbaarheid van ondersteuning voor een of ander audioformaat, evenals de kwaliteit van de reproductie (het is raadzaam om u erdoor te laten leiden bij het kiezen van een bitsnelheid).
2. Van de hoeveelheid geheugen die wordt toegewezen aan het uiteindelijke materiaal. Dienovereenkomstig wordt een hogere of lagere doelkwaliteit / bitsnelheid geselecteerd.
En natuurlijk moet u, naast het formaat en de bitsnelheid, de optimale encoder en coderingsparameters kiezen. Het moet duidelijk zijn dat verschillende formaten / encoders op verschillende manieren worden weergegeven in verschillende bitsnelheidsbereiken.
Daarom is het algoritme ongeveer het volgende:
1) Ontdek welke formaten het doelapparaat ondersteunt.
2) Bepaal hoeveel ruimte u kunt toewijzen voor het audiomateriaal, en bepaal ook de totale lengte van de audio die bedoeld is voor codering.
3) Bereken de vereiste bitsnelheid met behulp van de formule: bitsnelheid = schijfruimte (in kilobits) / totale_tijd (in seconden).
4) Kies volgens de bitrate de optimale van de ondersteunde formaten (hierover later meer).
5) Kies de beste encoder en parameters ervoor.
Meer over onze helden
CAA
beeld
De ontwikkeling van psychoakoestiek en datacompressiemethoden leidde er geleidelijk toe dat de MP3-standaard “streng” werd voor de implementatie van nieuwe ideeën in audiocodering. Als gevolg hiervan ontwikkelden Fraunhofer IIS, dat begin jaren negentig mp3 maakte, evenals Dolby, AT&T, Sony en Nokia, in 1997 een nieuwe audiocompressiemethode: Advanced Audio Coding (AAC), die een standaard werd. . MPEG-2 en MPEG-4. De belangrijkste verschillen met de mp3-standaard zijn:
ondersteuning voor een breder scala aan audioformaten (tot 48 kanalen) en samplefrequenties (8 kHz tot 96 kHz);
Efficiëntere en eenvoudigere filterbank: de hybride MP3-filterbank is vervangen door de conventionele MDCT (Modified Discrete Cosine Transform);
grotere variatiebereiken van de tijd-frequentieresolutie in de filterbank – acht keer (in mp3 – drie keer) – leidde tot een verbetering van de codering van transiënten (transiënten) en stationaire delen van het audiosignaal;
betere codering van frequenties boven 16 kHz;
flexibelere stereocoderingsmodus, waardoor u onafhankelijk naar de M / S-modus (“joint stereo”) kunt schakelen in verschillende frequentiebanden;
Extra kenmerken van de standaard die de compressie-efficiëntie verhogen: tijddomeinruisvormende technologie (TNS), voorspelling van MDCT-coëfficiënten in de tijd (langetermijnvoorspelling), parametrische stereocoderingsmodus, synthese van ruis (perceptuele ruisvervanging), hoge frequenties (SBR).
Dankzij deze functies kan de AAC-standaard een flexibelere en efficiëntere audiocodering en dus een betere kwaliteit bereiken. Door het wijdverbreide gebruik van het mp3-formaat heeft de AAC-standaard nog geen populariteit verworven die vergelijkbaar is met mp3. AAC is echter het hoofdformaat in de populaire iTunes Store, iPods, iTunes, iPhone, PlayStation 3, Nintendo Wii en DAB + / DRM digitale streams.
OGG Vorbis
beeld
Ogg Vorbis is een relatief nieuw universeel audiocompressieformaat dat officieel werd uitgebracht in de zomer van 2002. Het behoort tot hetzelfde type formaat als MP3, AAC, VQF en WMA, dat wil zeggen lossy compressieformaten. Het psychoakoestische model dat in Ogg Vorbis wordt gebruikt, is in principe vergelijkbaar met MP3 en vergelijkbare modellen, maar alleen dat de wiskundige verwerking en praktische implementatie van dit model fundamenteel verschillen, waardoor de auteurs het formaat volledig onafhankelijk van alle voorgangers kunnen verklaren.
Het belangrijkste onmiskenbare voordeel van het Ogg Vorbis-formaat is de totale openheid en vrijheid. Bovendien maakt het gebruik van het nieuwste en meest hoogwaardige psychoakoestische model, waardoor de bitrate / kwaliteitsverhouding aanzienlijk lager is dan bij andere formaten. Hierdoor is de geluidskwaliteit beter, maar is de bestandsgrootte kleiner.
Het formaat heeft veel voordelen. Het Ogg Vorbis-formaat beperkt de gebruiker bijvoorbeeld niet tot slechts twee audiokanalen (stereo: links en rechts). Ondersteunt tot 225 afzonderlijke kanalen met een samplefrequentie tot 192 kHz en tot 32 bits (wat geen compressieformaat met verlies doet), waardoor Ogg Vorbis ideaal is voor het coderen van 6-kanaals dvd-audio. Bovendien heeft het OGG Vorbis-formaat een steekproefnauwkeurigheid. Dit zorgt ervoor dat de audiogegevens vóór het coderen en na het decoderen geen offsets of extra / ontbrekende samples ten opzichte van elkaar hebben. Dit is gemakkelijk in te zien als je muziek eindeloos codeert (waarbij de ene track geleidelijk overgaat in de andere); uiteindelijk blijft de integriteit van het geluid behouden.
Streamingcapaciteit is nergens te vinden, maar dit formaat heeft het vanaf de grond opgebouwd. Dit geeft het formaat een vrij handig neveneffect: meerdere nummers kunnen in één bestand worden opgeslagen met hun eigen tags. Bij het laden van een dergelijk bestand in de speler, moeten alle nummers worden weergegeven alsof ze uit verschillende bestanden zijn geladen.
We moeten ook een vrij flexibel etiketteringssysteem noemen. De tag-header kan eenvoudig worden uitgebreid met songteksten van elke lengte en complexiteit (bijv. Songteksten) afgewisseld met afbeeldingen (bijv. Foto van albumhoes). Tekstlabels worden opgeslagen in UTF-8, zodat u in alle talen tegelijkertijd kunt typen en mogelijke problemen met coderingen worden geëlimineerd. Dit is veel handiger dan verschillende trucs zoals id3-tags.
Ogg Vorbis gebruikt standaard een variabele bitrate, terwijl de laatste niet beperkt is tot harde waarden en zelfs met 1 kbps kan variëren. Opgemerkt moet worden dat het formaat de maximale bitsnelheid niet strikt beperkt en met de maximale coderingsinstelling kan het variëren van 400 kbps tot 700 kbps. De samplefrequentie heeft dezelfde flexibiliteit: gebruikers kunnen kiezen tussen 2000 Hz en 192000 Hz.
Ogg Vorbis is ontwikkeld door de Xiphophorus-gemeenschap om alle betaalde eigen audioformaten te vervangen. Hoewel dit het jongste formaat is van alle mp3-concurrenten, heeft Ogg Vorbis volledige ondersteuning op alle bekende platforms (Windows, PocketPC, Symbian, DOS, Linux, MacOS, FreeBSD, BeOS, enz.), Evenals een groot aantal hardware-implementaties. … De huidige populariteit overtreft ver alle alternatieve oplossingen.
Het is vermeldenswaard dat Ogg Vorbis slechts een klein deel is van het Ogg Squish multimediaproject, dat ook gratis encoders bevat: Speex – voor spraakcompressie; FLAC: voor verliesloze audiocompressie; Theora: voor videocompressie.
Musepack
beeld
MusePack (mpp, mp +, mpc, MPEG +) is een bestandsformaat zonder licentie voor het opslaan van audio-informatie, verspreid onder de GNU General Public License.
De kwaliteit van MPC-codering bij hoge bitsnelheden (160 Kbps en hoger) is aanzienlijk (zo niet significant) hoger dan die van MP3.
Belangrijkste voordelen:
Het formaat doet geen tweede DCT-conversie, het heeft eigenlijk geen last van pre-echo-artefacten, in tegenstelling tot formaten zoals MP3, Vorbis, AAC en WMA.
Efficiëntere algoritmen met variabele bitsnelheid. Als u bijhoudt hoe de bitsnelheid verandert tijdens het afspelen van MPC-tracks, zult u merken dat voor eenvoudigere secties de encoder een lagere bitsnelheid toewijst en voor complexe een veel hogere, soms meer dan 400 ( !) Kbps. Een interessant feit is ook het vermelden waard: de MP3-encoder in VBR-modus voor stilte wijst een bitsnelheid van 32 kbps (bij een bemonsteringssnelheid van 44100 Hz), AAC en OGG Vorbis – 2 kbps, Musepack-codering toe stilte met minimale kosten, <1 kbps / s (een minuut stilte neemt bijvoorbeeld ongeveer 514 bytes in beslag). Dit alles spreekt tot de extreme “zuinigheid” van deze encoder.
Krachtig en flexibel psychoakoestisch model. Hier kunnen we bijvoorbeeld een frame-gebaseerd dynamisch laagdoorlaatfilter noemen (in andere encoders is een vaste bandbreedte ingesteld voor elke kwaliteitsvoorinstelling).
Meer geavanceerde compressie op basis van geoptimaliseerde Huffman-tabellen (dezelfde MP3 LAME verspilt ongeveer 20% van de bitsnelheid, alleen vanwege een onvolmaakte wiskundige compressie)
WMA
beeld
Windows Media Audio is een gelicentieerde bestandsindeling die is ontwikkeld door Microsoft voor het opslaan en verzenden van audio-informatie.
WMA werd aanvankelijk op de markt gebracht als alternatief voor MP3, maar Microsoft is nu tegen AAC. Nominaal wordt het WMA-formaat gekenmerkt door een goede comprimeerbaarheid, waardoor het het MP3-formaat kan “omzeilen” en kan concurreren op parameters met de Ogg Vorbis- en AAC-formaten. Maar zoals onafhankelijke tests en subjectieve evaluatie hebben aangetoond, is de kwaliteit van de formaten nog niet exclusief gelijk, en is het voordeel zelfs ten opzichte van mp3 ondubbelzinnig, zoals Microsoft beweert.
Formaat, encoder en parameterselectie
Nu meteen naar de kern van de zaak.
Om uw keuze gemakkelijker te maken, wil ik graag mijn ervaring delen die ik heb opgedaan tijdens talrijke vergelijkingen, audities en op basis van de analyse van de resultaten van open gehoortests.
En dus zal ik het nu hebben over de meest geschikte encoders voor elk geval, evenals de juiste keuze van parameters. Voor de conversie raad ik aan om foobar2000 te gebruiken (de converterinstellingen worden hier in detail beschreven), de parameters zelf zijn er speciaal voor gespecificeerd. Bovendien heeft foobar2000 een groot aantal handige DSP’s die handig kunnen zijn voor audiovoorverwerking.
Voor degenen die gaan converteren via de console of een ander programma: de variabele% s moet worden vervangen door de naam van het bronbestand (of een vergelijkbare variabele) en% d door de naam van het uitvoerbestand.
Merk op dat voor elk bitrate-bereik de mogelijke formaatopties worden aangegeven: de eerste heeft de hoogste prioriteit. Als uw speler de eerste optie niet ondersteunt, let dan op de volgende, enz. Zoals ik al schreef, verdienen vandaag eigenlijk maar drie codecs aandacht: dit zijn AAC, OGG Vorbis en Musepack. WMA, aan de andere kant, verschilt vanwege zijn gesloten karakter niet in speciale kwaliteit, maar toch is het in de meeste gevallen beter dan MP3. Aangezien sommige alternatieven alleen compatibel zijn met WMA, zal ik aanbevelingen doen voor elk van de vier formaten.
Over bitsnelheden: het moet duidelijk zijn dat de optimale coderingsmodus wordt aangeroepen. Echte VBR, dwz doelkwaliteitsmodus, geen bitsnelheid. Idealiter is het resultaat een track met een variabele bitsnelheid, maar met een constante kwaliteit (stel niet gelijk dat de twee, complexere delen van een track meer bits nodig hebben om de kwaliteit te behouden). Daarom is de outputbitsnelheid moeilijk te voorspellen. Daarom worden de onderstaande bitrate-waarden, indien mogelijk, slechts als gemiddelde aangegeven voor een groot aantal composities van verschillende complexiteit.
Genoemd in dit artikel, evenals enkele andere encoders, met Russische beschrijvingen van de belangrijkste parameters en aanbevelingen zijn hier te vinden.
Ultralage bitsnelheden (~ 25-40 kbps)
Dit bereik is ideaal voor het coderen van audioboeken. En hier kan er maar één optie zijn: AAC, of liever, Nero AAC. De parameters zijn als volgt:
-lc -q 0,35 -ignorlengte -if – -of% d
In dit geval moet het materiaal vooraf worden geconverteerd naar mono en opnieuw worden gesampled op 22050 Hz (bij voorkeur met behulp van een SoX-resampler). Aan de uitgang krijgen we de gebruikelijke AAC met lage complexiteit met een bitsnelheid van ongeveer 25 kbps.
Er zijn ook opties voor muziek in dit bereik:
1) Nero AAC. Hier zijn geen conversies nodig:
-q 0,15 -ignorlengte -if – -of% d
Aan de output – Zeer efficiënte AAC v2 (met parametrische stereo en HF-synthese), ~ 35 kbps. Een geweldige optie voor internetradio. Alleen hier mogen we niet vergeten dat de decoder in de speler compatibel moet zijn met HE-AACv2, anders krijg je een volledige afwezigheid van HF en monofonie.
2) OGG Vorbis AoTuV – Deze wijziging van libvorbis omvat verbeteringen aan het coderingsalgoritme met lage bitsnelheid en zelfs zonder SBR-technologie is het niet veel minder dan HE-AACv2. Opdrachtregel:
-s% r -Q -q-2 – -o% d
De resulterende bestanden moeten volledig compatibel zijn met standaard OGG Vorbis-decoders. Bitsnelheid – vergelijkbaar – ongeveer 35 kbps.
3) WMA 10 Pro. Voor dergelijke gevallen heeft Microsoft ook zoiets als SBR (hoogfrequente synthese), het klinkt niet zo slecht als het zou kunnen. Het is waar dat de bitsnelheid enigszins buiten de limieten valt: 48 kbps.
-silent -a_codec WMA9PRO -a_mode 3 -a_setting 48_44_2_16 -input% s -output% d
Merk op dat oudere decoders (vooral “hardware”) WMA 10 niet ondersteunen. In dit geval kunt u WMA 9.2 (dezelfde encoder) gebruiken, maar de kwaliteit bij lage bitsnelheden is veel slechter.
-silent -a_codec WMA9STD -a_mode 3 -a_setting 48_44_2 -input% s -output% d
Lage bitsnelheid, ~ 64 kbps
Aanvankelijk dacht ik erover om direct naar hogere snelheden te gaan. Maar aangezien hydrogenaudio.org onlangs een encodervergelijking met deze bitrate heeft uitgevoerd, is het zonde om deze te verliezen.
1) QuickTime AAC is de winnaar (behalve de nieuw gecreëerde Opus / CELT) van dezelfde test. Dit zijn de instellingen van de QAAC-encoder:
-s -v 64 –he -q 2 –ignorelength – -o% d
De output is HE-AAC (met SBR, maar niet parametrische stereo), die compatibel zou moeten zijn met verschillende iPods en dergelijke.
2) OGG Vorbis AoTuV – hoewel het vrij ver van QAAC bleek te zijn, maar toch:
-s% r -Q -q0 – -o% d
3) En voor het geval WMA 10 Pro:
-silent -a_codec WMA9PRO -a_mode 3 -a_setting 64_44_2_16 -input% s -output% d
Voor oudere decoders – WMA 9-standaard:
-silent -a_codec WMA9STD -a_mode 3 -a_setting 64_44_2 -input% s -output% d
Iets hoger, ~ 80-100 kbps
En ik beschouw deze bitrate al vanwege Vorbis.
1) Zoals tests hebben aangetoond, is de OGG Vorbis AoTuV-encoder er het meest geschikt voor:
-s% r -Q -q1 – -o% d
2) Nero AAC: een zeer goed resultaat. Op plaatsen waar de hoge tonen niet zo uitgesproken zijn, kan het zelfs beter klinken dan Vorbis (in de hoge tonen verliest het door synthese).
30 -ignorelength -if – -of% d The
gebruikt profiel is HE-AAC.
De facto standaard, 128 kbps
Interessant feit: veel mensen beweren dat voor MP3 128 kbps – “edge bit rate”, de kwaliteit begint die niet te onderscheiden is van het origineel. Misschien is dit zo … voor plastic Chinese luidsprekers met blatnyak. Eigenlijk is deze drempel ongeveer 200 kbps, en nieuwere formaten bieden een stabielere kwaliteit bij deze bitsnelheid.
Moderne encoders wisten dit niveau terug te brengen van 128 kbps naar bijna de helft (opnieuw, volgens de ontwikkelaars). Maar toch, als je een min of meer fatsoenlijke akoestiek (of koptelefoon) hebt, kan het verschil worden vastgelegd in complexe fragmenten, zelfs bij 128 kbps.