Cero, escrito al frente
Si desea comprender el audio, primero debe comprender su estructura, cómo cambia de sonido a archivo y cómo cambia de archivo a sonido. El formato de archivo tiene diferentes versiones según las necesidades y el progreso tecnológico, y los diferentes formatos de archivo tienen diferentes estructuras de archivo. Comencemos con los dos archivos de audio más originales y hablemos de los formatos de archivo de audio comunes. Primero es PCM y WAV
1. archivo PCM
PCM ( modulación de código de pulso ) son los datos de audio originales, que es la señal digital convertida de la señal eléctrica del muestreador (micrófono). En términos de grabación de audio, se puede usar en todos los escenarios donde otras señales eléctricas se convierten en señales digitales Un archivo de audio compuesto por dicha pieza de datos sin procesar se denomina archivo PCM y termina en .PCM. El tamaño de un archivo PCM depende de varios elementos:
1.1 Formato y parámetros
Frecuencia de muestreo : se refiere a la frecuencia a la que las señales eléctricas recopilan datos por segundo. Las frecuencias de muestreo de audio comunes son 8000 HZ, 16000 HZ, 44100 HZ, 48000 HZ, 96000 HZ, etc.
Profundidad de bits de muestreo : indica cuántos bits se utilizan para almacenar cada señal eléctrica. Por ejemplo, la profundidad de bits de muestreo de 8 bits se puede dividir en 256 niveles, y la frecuencia de sonido reconocible del oído humano es 20-20000 hz, por lo que el error de cada bit es Ha llegado a 80 HZ, lo que reduce en gran medida el grado de reproducción de audio, pero su tamaño se reduce en consecuencia, lo que es más propicio para la transmisión de audio. La telefonía inicial utilizaba una tasa de muestreo relativamente baja para lograr una calidad de llamada más estable. Si la profundidad de bits de 16 bits puede muestrear con precisión cada HZ. La profundidad de bits de muestreo en realidad no es tan simple como 8 bits/16 bits/32 bits. Para las computadoras, 16 bits se pueden representar con un int corto o de 16 bits, y 32 bits se pueden representar con 32 bits. int o Se puede representar como un flotante de 32 bits. Además, hay puntos firmados y sin firmar. También debemos prestar atención a esto al codificar y decodificar.
Canal de muestreo : los más comunes son de un solo canal o de doble canal. El doble canal puede ayudarnos a distinguir el sonido de los oídos izquierdo y derecho. Si es de un solo canal, ambos oídos tienen el mismo sonido. Por lo general, usamos canales duales en busca del estéreo, por lo que el sonido recopilado por los canales duales también se denomina estéreo. Además, hay tipos de canales más exigentes como 2.1, 5.1, 6.1, 7.1, etc., que tienen ciertos requisitos para el micrófono con el que grabas audio.
Método de almacenamiento de datos : indica si los datos se almacenan de forma cruzada o canal por canal. El arreglo cruzado es solo para archivos de audio multicanal, y no hay arreglo cruzado para archivos de audio de un solo canal. . El canal de muestreo y el método de almacenamiento de datos determinan cómo se almacenan los datos.
Entonces se puede ver de lo anterior que el tamaño del disco requerido para generar un archivo PCM 1S:
Tasa de muestreo * número de bits de muestreo * número de canales en bit
Entonces el resultado calculado es en realidad nuestro bit/segundo = tasa de bits
Luego generamos un archivo PCM con una duración de 10S, una frecuencia de muestreo de 44100 Hz, un número de muestreo de 16 bits y un número de canal de dos bits.El tamaño de disco (unidad de bits) requerido es: 44100*16*2*10 .
Aunque PCM es la fuente de datos de audio, la mayoría de los reproductores no pueden reproducirlos porque solo tienen datos y el reproductor no tiene forma de saber cómo analizarlos. Incluso un reproductor PCM debe especificar su frecuencia de muestreo, número de canales y el el número de bits de muestreo y el orden de los bytes se pueden reproducir correctamente (convirtiendo señales digitales en señales eléctricas).
Así que hay varios formatos de audio comunes WAV/MP3/AAC. Por supuesto, el viaje de estos formatos de audio no es solo para resolver el problema de almacenar información básica de audio. El propósito de MP3 y AAC es más para comprimir datos. Bajo la premisa de garantizar la mayor calidad posible, el archivo ocupa menos espacio y logra una mejor transmisión y efectos de almacenamiento. Antes de eso, permítanme hablar sobre el archivo de audio WAV, que está muy cerca de PCM.
1.2, orden de bytes
Cuando grabamos PCM, también debemos prestar atención a la calidad irrelevante del archivo, que es muy simple pero muy importante: endianness. Por supuesto, el orden de los bytes no es solo en el audio, sino también un punto que necesita atención para algunos protocolos de interacción/almacenamiento/comunicación de datos relacionados con la computadora. El orden de los bytes se divide en dos tipos: big endian y little endian. El orden más legible , little endian es el orden en el que la computadora es más legible. Por ejemplo, si un dato es 0x01234567, su secuencia big-endian es 0x01234567 y su secuencia little-endian es 0x67452301. De hecho, la posición del byte se invierte.
2. WAV
2.1, formato y parámetros
Se puede decir que WAV solo resuelve el problema de que los datos PCM no tienen un formato de almacenamiento y grabación, y la solución es bastante simple y tosca, agregando directamente la información del formato de grabación al encabezado de PCM, que ocupa 44 bytes fijos. Por lo tanto, el espacio ocupado por WAV no es menor que el de los datos PCM, pero es 44 bytes más grande, veamos qué se pone en estos 44 bytes. Tomemos como ejemplo un archivo PCM con una frecuencia de muestreo de 44100, un número de muestreo de 16, canales duales y una duración de 10S a WAV. Primero calcule el tamaño del archivo PCM: 44100*16*2*10=14112000bit=176000byte, por supuesto, también podemos leer la longitud del archivo para obtenerlo en aplicaciones prácticas.
bloque propietario |
posición |
nombre |
tamaño (byte) |
orden de bytes |
describir |
contenido |
bloque RIF |
0-3 |
IDENTIFICACIÓN |
4 |
extremo grande |
Contenido fijo 'RIFF' código ASCALL |
0x52494646 |
4-7 |
Tamaño |
4 |
pequeño endian |
La longitud de todo el archivo (incluido el encabezado 44) menos la ID y el tamaño Szie es en realidad -8 |
Los datos son 176000+44-8=176036 Big-endian: 0x0002AFA4 Poco endian: 0xA4AF0200 |
|
8-11 |
tipo |
4 |
extremo grande |
Contenido fijo 'WAVE' |
0x57415645 |
|
bloque de formato |
12-15 |
IDENTIFICACIÓN |
4 |
extremo grande |
Contenido fijo 'fmt', tenga en cuenta que el último byte no está en blanco (ASCALL completo) |
0x666d7420 |
16-19 |
TAMAÑO |
4 |
pequeño endian |
La longitud del bloque (no el archivo total) - Longitud de ID y Tamaño |
Longitud de bloque 35-11=24 longitud de datos 24-8=16 Big-endian: 0x0010 Poco endian: 0x1000 |
|
20-21 |
Formato de audio |
2 |
pequeño endian |
Formato de audio, generalmente 1 significa PCM |
Big-endian: 0x0001 Poco endian: 0x0100 |
|
22-23 |
NumChannels |
2 |
pequeño endian |
Número de canales 1 mono 2 estéreo |
Gran endian: 0x0002 Poco endian: 0x0200 |
|
24-27 |
Tasa de muestra |
4 |
pequeño endian |
Tasa de muestreo |
Datos 44100 Bigendian: 0x0000AC44 Poco endian: 0x44AC0000 |
|
28-31 |
Tasa de bytes |
4 |
pequeño endian |
La tasa de bytes es en realidad tasa de bits/8 |
Datos 1411200/8=17600 Bigendian: 0x000044C0 Poco endian: 0xC0440000 |
|
32-33 |
Alinear bloque |
2 |
pequeño endian |
Cuántos bytes se necesitan por muestra = Número de canales * número de bits de muestreo / 8 |
Datos: 2*16/8=4 Big-endian: 0x0004 Poco endian: 0x0400 |
|
34-35 |
bit por muestra |
2 |
pequeño endian |
Bits de muestreo 8/16/24/32 bits |
Datos: 16 Big-endian: 0x0010 Poco endian: 0x1000 |
|
bloque de datos |
36-39 |
ID de datos |
4 |
extremo grande |
contenido fijo 'datos' |
0x64617461 |
40-43 |
Tamaño de datos |
4 |
pequeño endian |
Tamaño real de PCM |
Datos: 176000 Bigendian: 0x0002AF80 Poco endian: 0x80AF0200 |
|
44-(44+ Tamaño de datos) |
Datos |
Tamaño de datos |
pequeño endian |
Datos PCM (de hecho, el little endian aquí también es el orden de bytes de grabación que solemos especificar al grabar) |
Empalme de datos PCM directamente hacia arriba |
Cabe señalar que los datos oficiales muestran que los datos de estos archivos de encabezado se dividen en big endian y small endian, pero en la aplicación real, todos usamos big endian y no afectará nuestra reproducción. De todos modos, no necesita datos de little-endian, puede cambiarlos a small-endian y big-endian por un tiempo, eso definitivamente no es posible. En cuanto a cómo empaquetar PCM a WAV, puede ver claramente la tabla anterior.
2.2 Resumen
Ventajas: en términos de datos, no tiene pérdidas, conserva los datos originales/la conversión de formato es simple y una conversión de formato se puede completar con docenas de líneas de código/descodificación sin transcodificación.
Desventajas: el volumen es demasiado grande/el tamaño del archivo es limitado y el espacio para almacenar datos del tamaño de un archivo es de solo 4 bytes, que es 2^32 bytes como máximo, lo que equivale a casi 4 GB.
Escenario de aplicación: De hecho, además del audio, también se puede utilizar como almacenamiento de archivos para la transmisión/otras señales eléctricas a señales digitales.
3. Escribe al final
这篇记录的是最简单的PCM和WAV音频格式,后续还有MP3和AAC格式的相关记录,有兴趣的可以点个关注等待后续更新,也希望大家能看看我其它博客给出建议哦。欢迎大家交流讨论,批评指正。