Hva heltall typen brukes for MP3 datarammer?

stemmer
0

Jeg skriver en universell parser bibliotek for ulike binære formater i Rust som en del av et personlig prosjekt. Jeg har begynt å forske på filstrukturen på MP3-filer. Som jeg forstår det, en MP3-fil struktur består av header og datarammer. Hver toppramme gir meta-informasjon om den fortsetter dataramme. Her er et diagram og en liste over tillatte verdier for MP3 header rammer som jeg refererer til.

Jeg forstår formatet MP3 spissen. Min forvirring, eller mangel på informasjon, omgir MP3 datarammer. Jeg kan ikke synes å finne en kilde som spesifiserer hva heltallstype prøvene er kodet som i datarammedel av en MP3-fil. Er de 8 bit, 16 bit, 32 bit, signert, usignerte, etc?

Det beste jeg kan tenke på er å bruke en kombinasjon av samplingsfrekvens frekvens og bitrate til å beregne hva hvert utvalgsstørrelsen skal. Men det betyr ikke fastslå om hver prøve er et signert eller heltall.

Jeg prøver ikke dekode disse filene, jeg prøver bare å analysere dem. Jeg har hatt en overraskende vanskelig å finne denne informasjonen. All informasjon eller nyttig noen kan tilby ville være mye verdsatt.

Publisert på 14/01/2020 klokken 00:00
kilden bruker
På andre språk...                            


1 svar

stemmer
2

Selv om dette ikke er relatert til .mp3 per se, kan det potensielt være litt nyttig informasjon i Will C. Pirkle bok, Design lydeffekt Plugins i C ++ .

Han drøfter på hvilken måte den wav audio format lagrer informasjon. Den bruker signert heltall start fra -32768 til 32767. Dette representerer et område på 2 ^ 16 i en bipolar format, hvor eksponentbit svarer til bit-dybde (vanligvis 16 eller 24).

En annen viktig ting å merke seg er at mens fase inversjon er en vanlig ting i mange lydprogrammer, er det ingen tilsvarende tall for invertere -32768. For å kompensere, er det vanlig å behandle verdien -32768 som -32767. Dette betyr bare skjønt hvis du bruker verdien 0 i behandling, som er oftest tilfelle. Ellers kan man forlenge den øvre grensen til 32 768.

Han gjør staten at det er mer vanlig for lydprosessering programmer for å håndtere flyttall enten mellom 0.0f og 1.0f eller -1.0f og 1.0f. Årsaken er at på grunn av addisjon og multiplikasjon er vanlige operasjoner i DSP, unngår vi overfylte dette området hvis vi bruker disse flytende poeng. I bipolar heltall format, er det altfor lett å finne to tall som resulterer i et produkt eller en sum utenfor dette området. I området -1.0f til 1.0f, vil to tall alltid resultere i et produkt som fortsatt er innenfor dette området. Dessverre krever tillegg fortsatt forsiktighet, men eh ...

Jeg beklager at jeg ikke har mer informasjon om .mp3s spesifikt, men kanskje dette kan fortsatt være innsiktsfull.

Lykke til!

Svarte 14/01/2020 kl. 20:02
kilden bruker

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