Wat integer type wordt gebruikt voor MP3-gegevens frames?

stemmen
0

Ik ben het schrijven van een universele parser bibliotheek voor diverse binaire formaten in Rust, als onderdeel van een persoonlijk project. Ik ben begonnen met het onderzoek naar de bestandsstructuur van MP3-bestanden. Zoals ik het begrijp, een MP3-bestand structuur bestaat uit header en data frames. Elke header frame zorgt meta-informatie over de procedure data frame. Hier is een diagram en een lijst van toegestane waarden voor MP3 header frames die ik van verwijzingen.

Ik begrijp dat het formaat van de MP3-header. Mijn verwarring of gebrek aan informatie, omringt MP3 data frames. Ik kan niet te hebben een bron die specificeert welk voorbeeld integer monsters worden gecodeerd zoals in het dataframe gedeelte van een MP3 bestand. Zijn ze 8 bit, 16 bit, 32 bit, ondertekend, niet ondertekend, etc?

Het beste wat ik kan bedenken is, om een ​​combinatie van de sample rate frequentie te gebruiken en bitrate te berekenen wat elke steekproefomvang moeten. Maar dat is niet vast te stellen of elk monster is een ondertekend of unsigned integer.

Ik probeer niet decoderen van deze bestanden, ik probeer alleen maar om ze te ontleden. Ik heb een verrassend harde tijd vinden van deze informatie gehad. Alle informatie of nuttige iemand kan bieden zou zeer worden gewaardeerd.

De vraag is gesteld op 14/01/2020 om 00:00
bron van user
In andere talen...                            


1 antwoorden

stemmen
2

Hoewel dit niet is gerelateerd aan .mp3 per se, kan er mogelijk wat nuttige informatie in het boek van Will C. Pirkle's, zijn ontwerpen Audio Effect Plugins in C ++ .

Hij gaat in op de wijze waarop de .wav audioformaat zijn informatie opslaat. Het maakt gebruik van integers vanaf -32.768 tot 32.767. Dit staat voor een reeks van 2 ^ 16 in een bipolaire format, waarbij de exponent correspondeert met de bitdiepte (meestal 16 of 24).

Een ander belangrijk ding op te merken is dat terwijl fase-inversie is een gemeenschappelijk ding in vele audiotoepassingen, is er geen overeenkomstige integer voor het omkeren van -32.768. Om dit te compenseren, is het gebruikelijk om de waarde -32.768 als -32.767 behandelen. Dit is van belang alleen maar als je gebruik maakt van de waarde 0 in de verwerking, dat is meestal het geval. Anders kan men de bovengrens te breiden tot 32.768.

Hij doet staat dat het vaker voor audio-verwerking van de aanvragen om te gaan met floating point getallen ofwel tussen 0.0f en 1.0F of -1.0f en 1.0F. De reden is dat te wijten aan optellen en vermenigvuldigen zijn gemeenschappelijke operaties in DSP, vermijden we overlopen dat bereik als we gebruik van deze drijvende punten. In de bipolaire integer-formaat, het is te gemakkelijk om twee nummers die resulteren in een product of de som buiten dat bereik te vinden. In het bereik van -1.0f tot 1.0F, zal twee nummers altijd resulteren in een product dat nog steeds binnen dat bereik. Helaas, naast nog steeds vereist de nodige voorzichtigheid, maar eh ...

Spijt me dat ik niet meer informatie over .mp3's hebben in het bijzonder, maar misschien is dit nog steeds inzichtelijk zijn.

Succes!

antwoordde op 14/01/2020 om 20:02
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more