¿Qué tipo entero se utiliza para las tramas de datos de MP3?

votos
0

Estoy escribiendo una biblioteca analizador universal para varios formatos binarios en Rust, como parte de un proyecto personal. He empezado a investigar la estructura de archivos de los archivos MP3. Como yo lo entiendo, una estructura de archivos MP3 consiste en marcos de cabecera y datos. Cada marco de encabezado proporciona información de metadatos acerca de la trama de datos de proceder. Aquí es un diagrama y una lista de valores permitidos para los marcos de cabecera de MP3 que estoy de referencia.

Entiendo el formato de la cabecera de MP3. Mi confusión o falta de información, rodea tramas de datos MP3. Me parece que no puede encontrar una fuente que especifica qué tipo entero muestras se codifican como en la parte de la trama de datos de un archivo MP3. Están 8 bits, 16 bits, 32 bits, firmada, sin firmar, etc?

Lo mejor que puedo pensar es, utilizar una combinación de la frecuencia de muestreo y velocidad de bits para calcular lo que cada tamaño de la muestra debería. Sin embargo, eso no determina si cada muestra es un número entero con o sin signo.

No estoy tratando de decodificar estos archivos, sólo estoy tratando de analizarlos. He tenido un tiempo sorprendentemente difícil encontrar esta información. Cualquier información o útiles a alguien Oferta sería muy apreciada.

Publicado el 13/01/2020 a las 22:00
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
2

Aunque esto no está relacionado con .mp3 per se, no podrían ser alguna información útil en el libro de Will C. Pirkle, Diseño de Audio Efecto plugins en C ++ .

El autor analiza la forma en que la .wav formato de audio almacena su información. Se utiliza enteros a partir de 32.768 a 32.767 firmado. Esto representa un rango de 2 ^ 16 en un formato bipolar, donde el exponente corresponde a la profundidad de bits (lo más comúnmente 16 o 24).

Otra cosa importante a destacar es que mientras que la inversión de fase es una cosa común en muchas aplicaciones de audio, no hay entero correspondiente para invertir 32.768. Para compensar, es común para tratar el valor -32.768 -32.767 como. Esto sólo importa aunque si se utiliza el valor 0 en su procesamiento, que es el caso más frecuente. De lo contrario, se podría extender el límite superior a 32.768.

Él hace el estado que es más común en las aplicaciones de procesamiento de audio para hacer frente a los números de punto flotante, ya sea entre 0.0f y 1.0f o -1.0f y 1.0f. La razón es que debido a la adición y multiplicación siendo comunes en las operaciones de DSP, evitamos que desborda ese rango si usamos estos puntos flotantes. En el formato de número entero bipolar, es demasiado fácil de encontrar dos números que dan lugar a un producto o suma fuera de ese rango. En la gama de -1.0f a 1.0f, dos números serán siempre como resultado un producto que todavía está dentro de ese rango. Por desgracia, además todavía requiere precaución, pero eh ...

Lo siento, no tengo más información sobre .mp3 específicamente, pero tal vez esto todavía podría ser perspicaz.

¡Buena suerte!

Respondida el 14/01/2020 a las 18:02
fuente por usuario

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