Conceptos básicos_8. Codificación de audio MP3\AAC
Básico_1. Marco de Aprendizaje de Audio y Vídeo
Básico N°2. Modelo de espacio de color RBG, YUV, HSV
Conceptos básicos_3. Bmp
Conceptos básicos de codificación de imágenes_4. Conceptos básicos de audio
Conceptos básicos Capítulo 5. Recopilación de datos de audio
Conceptos básicos_6. Codificación de audio PCM
Conceptos básicos_7. Codificación de audio
Conceptos básicos_8. Codificación de audio MP3\AAC
Para obtener información detallada sobre la codificación de mp3, consulte el siguiente enlace.
/p/58df 71a 19901
AAC es la abreviatura de Advanced Audio Coding, que apareció en 1997. Originalmente era una tecnología de codificación de audio basada en MPEG-2. Desarrollado conjuntamente por Fraunhofer IIS, Dolby Laboratories, AT&T, Sony y otras ** empresas, reemplaza el formato MP3. En 2000, apareció el estándar MPEG-4 y AAC reintegró otras tecnologías (PS, SBR). Para distinguirlo del MPEG-2 AAC tradicional, el AAC con características SBR o PS también se denomina MPEG-4 AAC.
AAC es una nueva generación de tecnología de compresión de audio con pérdida. A través de algunas tecnologías de codificación adicionales (como PS, SBR, etc.), deriva tres códigos principales: LC-AAC, He-AAC y He-AAC V2. LC-AAC es AAC tradicional. En términos relativos, se utiliza principalmente para velocidades de código medias y altas (>: = 80 Kbps). HE-AAC (equivalente a AAC+SBR) se utiliza principalmente para velocidades de código medias y bajas (
AAC* **Hay 9 especificaciones para satisfacer las necesidades de diferentes ocasiones:
MPEG-2 AAC LC de baja complejidad) - especificación - relativamente simple, no requiere control de ganancia, pero mejora la codificación eficiencia y se puede utilizar a velocidades de bits medias. Encuentre un equilibrio entre eficiencia de codificación y calidad de sonido.
Especificaciones principales de MPEG-2 AAC
Frecuencia de muestreo variable MPEG-2 AAC SSR (frecuencia de muestreo escalable)
MPEG-4 AAC LC grado de baja complejidad) - Especificación: este archivo de audio de especificación contiene la parte de audio de los archivos MP4 que se encuentran comúnmente en los teléfonos móviles.
Especificaciones principales de MPEG-4 AAC Main: incluye todas las funciones excepto el control de ganancia y la mejor calidad de sonido.
Frecuencia de muestreo variable MPEG-4 AAC SSR (frecuencia de muestreo escalable)
Especificación de predicción a largo plazo MPEG-4 AAC LTP (predicción a largo plazo)
Especificación de baja latencia MPEG-4 AAC LD
MPEG-4 AAC HE Efficiency) - Especificación: esta especificación es adecuada para codificación de baja velocidad de bits e incluye
compatibilidad con el codificador Nero ACC
Los más utilizados actualmente son LC y HE (adecuados para velocidades de bits bajas). El popular programa de codificación Nero AAC solo admite LC, él y HEv2. El audio AAC codificado y la pantalla de especificaciones son todos LC. En realidad, es tecnología AAC(LC)+SBR, y HEv2 es tecnología AAC(LC)+SBR+PS;
** Hev1 y HEv2 se representan simplemente con esta figura:**
* *(AAC en la imagen se refiere al AAC-LC original)**
* *Él: "Alta eficiencia". HE-AAC v1 (también conocida como AACPlusV1, SBR), la tecnología AAC (LC) + SBR se implementa mediante el método de contenedor. SBR en realidad significa Replicación de Banda Espectral. En pocas palabras, el espectro principal de la música se concentra en la banda de baja frecuencia, y la banda de alta frecuencia es pequeña pero muy importante, lo que determina la calidad del sonido. Si se codifica toda la banda de frecuencia y se protege la banda de alta frecuencia, la banda de baja frecuencia se codificará de forma demasiado fina y el archivo será enorme si se conservan los componentes principales de baja frecuencia y los de alta frecuencia; se pierden, se perderá la calidad del sonido. SBR corta el espectro, codifica por separado las frecuencias bajas para guardar los componentes principales y amplifica por separado las frecuencias altas para guardar la calidad del sonido. Resuelve perfectamente esta contradicción al reducir el tamaño del archivo y al mismo tiempo preservar la calidad del sonido de una "manera equilibrada".
* *HeV2: * *El método de contenedor incluye tecnología HE-AAC v1 y PS.
PS significa "estéreo paramétrico". El archivo estéreo original tiene el doble del tamaño de archivo de los canales. Sin embargo, existen algunas similitudes entre los dos canales. Según el teorema de codificación de entropía de Shannon, las correlaciones deben eliminarse para reducir el tamaño del archivo. Por lo tanto, la tecnología PS almacena toda la información de un canal y luego utiliza unos pocos bytes para describir los parámetros de otro canal y sus diferencias.
(1)AAC es un algoritmo de compresión de audio con una alta relación de compresión, pero su relación de compresión supera con creces los algoritmos de compresión de audio más antiguos, como AC-3 y MP3. Su calidad es comparable a la de los CD sin comprimir.
(2) Al igual que otros algoritmos de codificación de audio similares, AAC también utiliza un algoritmo de codificación de transformación, pero AAC utiliza un banco de filtros de mayor resolución, por lo que puede lograr una relación de compresión más alta.
(3) AAC utiliza las últimas tecnologías, como reorganización temporal del ruido, predicción lineal adaptativa hacia atrás, tecnología estéreo conjunta, codificación Huffman cuantificada, etc., para mejorar aún más la relación de compresión.
(4)AAC admite más frecuencias de muestreo y de bits, de 1 a 48 pistas de audio, hasta 15 pistas de audio de baja frecuencia, compatibilidad con varios idiomas y hasta 15 flujos de datos integrados.
(5)AAC admite un rango de frecuencia de sonido más amplio, hasta 96 kHz y tan bajo como 8 KHz, que es mucho más amplio que el rango de 16 KHz-48 kHz de MP3.
(6) A diferencia de MP3 y WMA, AAC casi no pierde los componentes de muy alta y muy baja frecuencia en la frecuencia del sonido. La estructura del espectro está más cerca del audio original que WMA, por lo que la fidelidad del sonido. es mayor. La evaluación profesional muestra que AAC es más claro y más cercano al sonido original que WMA.
(7)AAC utiliza algoritmos optimizados para lograr una mayor eficiencia de decodificación y requiere menos potencia de procesamiento al decodificar.
Formato de intercambio de datos de audio. La característica de este formato es que el comienzo de estos datos de audio se puede encontrar con certeza y no es necesario que la decodificación comience en el medio del flujo de datos de audio, es decir, su decodificación debe realizarse en el comienzo claramente definido. Por lo tanto, este formato se usa comúnmente para archivos de disco.
Flujo de transporte de datos de audio. La característica de este formato es que es un flujo de bits con palabras de sincronización y la decodificación puede comenzar desde cualquier lugar de este flujo. Sus características son similares al formato de flujo de datos mp3.
En pocas palabras, ADTS se puede decodificar en cualquier cuadro, lo que significa que tiene información de encabezado en cada cuadro. ADIF solo tiene un encabezado unificado, por lo que debe obtener todos los datos antes de decodificarlos. Y los formatos de estos dos encabezados también son diferentes. Actualmente, tanto las transmisiones de audio codificadas como las extraídas están en formato ADTS. La estructura organizativa específica de los dos es la siguiente:
El formato ADIF de AAC se muestra en la siguiente figura:
El formato general de AAC ADTS se muestra en la siguiente figura:
En la figura se muestra la estructura concisa de un marco ADTS. Los rectángulos en blanco en ambos lados representan los datos antes y después de un marco.
Información del encabezado ADIF:
La información del encabezado ADIF se encuentra al principio del archivo AAC, seguida de bloques de datos originales continuos.
Los campos que componen la información de cabecera de ADIF son los siguientes:
Información de cabecera fija de ADTS:
Información de cabecera variable de ADTS:
(1) El propósito de la sincronización de tramas es encontrar la posición del encabezado de la trama en el flujo de bits. 13818-7 estipula que la palabra de sincronización del encabezado de trama del formato aac ADTS es 1165438+.
(2)2) La información del encabezado de ADTS consta de dos partes, una parte es información del encabezado fijo, seguida de información del encabezado variable. Los datos de la información del encabezado fijo son los mismos en cada cuadro, mientras que la información del encabezado variable varía de un cuadro a otro.
En AAC, un bloque de datos sin procesar puede estar compuesto por seis elementos diferentes:
Elemento de un solo canal Elemento de un solo canal. Los componentes monocanal constan esencialmente de un solo circuito integrado. Lo más probable es que el bloque de datos original esté compuesto por 16 SCE.
CPE: Elemento de par de canales Elemento de doble canal, que consta de dos circuitos integrados que pueden * * * disfrutar de información secundaria y cierta información de codificación estéreo conjunta.
CCE: Elemento de Canal de Acoplamiento Elemento de Canal de Acoplamiento. Un bloque que representa información estéreo conjunta multicanal o información de diálogo para un programa multilingüe.
LFE: Elemento de baja frecuencia. Contiene un canal que mejora las frecuencias de muestreo bajas.
DSE: Elemento de flujo de datos El elemento de flujo de datos contiene información adicional que no es audio.
PCE: Elemento de Configuración del Programa Elemento de Configuración del Programa. Contiene información de configuración del canal. Puede aparecer en la información de cabecera de ADIF.
FIL: elemento de relleno elemento de relleno. Contiene información ampliada. Como SBR, información de control de rango dinámico, etc.
Proceso de decodificación AAC
[Error en la carga de la imagen...(Imagen-EAF 24c-1543569949388)]
Como se muestra en la imagen:
Después de que el módulo de control principal comienza a ejecutarse, el módulo de control principal coloca parte del flujo de bits AAC en el búfer de entrada y obtiene el inicio de una trama buscando la palabra de sincronización. Después de encontrarlo, comience la decodificación silenciosa de acuerdo con la sintaxis descrita en ISO/IEC 13818-7, que en realidad es la decodificación de Huffman. Después de la descuantización, estéreo conjunto, sustitución de ruido perceptual (PNS), conformación instantánea de ruido (TNS), transformada de coseno discreta inversa (IMDCT) y replicación de banda de frecuencia (SBR), se obtienen los flujos de código PCM de los canales izquierdo y derecho, y luego reproducido por el módulo de control principal Ingrese al búfer de salida y envíelo al dispositivo de reproducción de sonido.
Análisis técnico:
1. Módulo de control principal:
El llamado módulo de control principal, su tarea principal es operar el buffer de entrada y salida y Llame a otros módulos para que trabajen juntos.
Entre ellos, los buffers de entrada y salida los proporciona el módulo de control DSP. Los datos almacenados en el búfer de salida son datos PCM decodificados y representan la amplitud del sonido. Consiste en un buffer de longitud fija. El puntero principal se obtiene llamando a la función de interfaz del módulo de control DSP. Una vez lleno el búfer de salida, se llama al procesamiento de interrupción para enviar el sonido analógico al chip ADC de audio (DAC de audio estéreo y amplificador de auriculares DirectDrive) conectado a la interfaz I2S.
2. Decodificación silenciosa (decodificación silenciosa):
La codificación silenciosa es la codificación de Huffman. Su función es reducir aún más la redundancia del factor de escala y el espectro cuantificado.
Codificación Huffman de factores de escala e información espectral cuantificada. La ganancia global se codifica en un entero sin signo de 8 bits, y el primer factor de escala se codifica diferencialmente con el valor de ganancia global y luego se realiza la codificación de Huffman utilizando una tabla de codificación de factores de escala. Los factores de escala posteriores se codifican diferencialmente con el factor de escala anterior. La codificación de ruido del espectro cuantificado tiene dos coeficientes espectrales. Una es la división de 4 tuplas y 2 tuplas, y la otra es la división de secciones. Para la división anterior, determina si el valor encontrado por la tabla de Huffman es 4 o 2. Para la última partición, determine qué tabla de Huffman se debe utilizar. Cada sección contiene varias bandas de factores de escala y solo se utiliza una tabla de Huffman en cada sección.
-Sección
La codificación silenciosa divide los 1024 coeficientes espectrales cuantificados de entrada en varios segmentos y se utilizan todos los puntos de los segmentos.
Para la misma tabla de Huffman, considerando la eficiencia de codificación, el límite de cada segmento debe coincidir preferiblemente con el límite de la banda del factor de escala. Por lo tanto, la información que se debe transmitir para cada segmento debe incluir: longitud del segmento, banda del factor de escala y la tabla de Huffman utilizada.
-Grupo y Alternativo
Agrupar se refiere a agrupar coeficientes espectrales continuos con la misma banda de factor de escala en un grupo, ignorando la ventana donde se ubican los coeficientes espectrales.
En resumen, * * * disfrute de factores de escala para una mejor eficiencia de codificación. Hacer esto conducirá inevitablemente a la alternancia, es decir, originalmente se basó en la disposición secuencial de los coeficientes de
C[Grupo][Ventana][Banda del factor de escala][Índice de coeficiente], y se cambió al mismo coeficiente con el mismo factor de escala Junte: c[grupo][banda de factor de escala][ventana][índice de coeficiente]
Esto da como resultado coeficientes alternos para la misma ventana.
-Procesamiento de valores a gran escala
Hay dos formas de manejar valores cuantificados en AAC: usando banderas de escape o usando pulsos en una tabla de codificación de Huffman.
Métodos de fuga. El primero es similar al método de codificación mp3, utiliza una tabla especial de Huffman cuando aparece una gran cantidad de valores cuantificados, lo que implica que su uso irá seguido de un par de valores de escape y el signo del valor opuesto después de Huffman. codificación. Cuando se utiliza el método de escape de pulso, un valor grande menos una diferencia se convierte en un valor pequeño, que luego se codifica usando una tabla de Huffman, seguido de una estructura de pulso para ayudar a recuperar la diferencia.
3. Decodificación del factor de escala y cuantificación inversa
En la codificación AAC, la cuantificación inversa de los coeficientes espectrales se implementa mediante un cuantificador no uniforme y se requiere su operación inversa durante la decodificación. Es decir, mantenga el cartel y realice la operación de potencia 4/3. La forma básica de ajustar el ruido de cuantificación en el dominio de la frecuencia es utilizar un factor de escala para darle forma al ruido. El factor de escala es el valor de ganancia de amplitud utilizado para cambiar todos los coeficientes espectrales en la banda del factor de escala. El mecanismo de uso de factores de escala es utilizar un cuantificador no uniforme para cambiar la distribución de bits del ruido de cuantificación en el dominio de la frecuencia.
-Factor de escala-banda
Las líneas de frecuencia se dividen en varios grupos según las características auditivas del oído humano, y cada grupo corresponde a varios factores de escala. Estos grupos se denominan bandas de factores de escala. Para reducir la información lateral que contiene la información de ventanas cortas, se pueden agrupar ventanas cortas continuas, es decir, varias ventanas cortas se transmiten juntas como una ventana, y luego el factor de escala actuará en todas las ventanas agrupadas.
4. Joint Stereo
El propósito de Joint Stereo es renderizar la muestra original y hacer que el sonido sea más "agradable".
5. Reemplazo de ruido perceptual (PNS)
El módulo de reemplazo de ruido perceptual es un módulo que simula el ruido mediante codificación de parámetros. Al juzgar el ruido en el valor de audio
Después del sonido, el ruido no se cuantifica ni codifica, pero se utilizan algunos parámetros para indicarle al decodificador que se trata de algún tipo de ruido, y luego el decodificador utilizará alguna codificación aleatoria produce este tipo de ruido.
En funcionamiento específico, el módulo PNS detecta componentes de señal con frecuencias inferiores a 4kHz en cada banda de factor de escala. Si esta
señal se considera una señal de ruido porque no es ni un tono ni una energía fuerte que cambie con el tiempo. Calcule los cambios de tono y energía de una señal en un modelo psicoacústico.
Al decodificar, si se encuentra la tabla 13 de Huffman (noise_HCB), utilice PNS. Debido a que la decodificación estéreo M/S y la decodificación PNS son mutuamente excluyentes, el parámetro ms_used se puede utilizar para indicar si ambos canales utilizan el mismo PNS. Si el parámetro ms_used es 1, ambos canales utilizarán el mismo vector aleatorio para generar la señal de ruido. La señal de energía de PNS está representada por noise_nrg. Si se utiliza PNS, se transmitirán las señales de energía en lugar de sus respectivos factores de escala. La codificación de la energía del ruido es la misma que el factor de escala, utilizando codificación diferencial. El primer valor es también el valor de ganancia global. Se coloca alternativamente con el valor de posición estéreo de intensidad y el factor de escala, pero para la decodificación diferencial se ignoran entre sí. Es decir, el siguiente valor de energía de ruido es la decodificación diferencial estándar del valor de energía de ruido anterior, no la posición estéreo de intensidad o el factor de escala. La energía aleatoria producirá una distribución de energía promedio calculada por noise_nrg en bandas de factor de escala. Esta tecnología sólo se utilizará en MPEG-4 AAC.
6. Conformación de ruido transitorio (TNS)
Esta tecnología mágica puede modificar la distribución del ruido de cuantificación en el dominio del tiempo mediante la predicción en el dominio de la frecuencia. En un
¡La tecnología TNS ha hecho una gran contribución a la mejora de la calidad del sonido en la cuantificación de algunas partes especiales y señales que cambian drásticamente! La configuración del ruido transitorio TNS se utiliza para controlar el patrón de ruido transitorio dentro de la ventana de conversión. Se logra mediante un proceso de filtrado de un solo canal. Los esquemas tradicionales de codificación por transformación a menudo encuentran el problema de que las señales cambian drásticamente en el dominio del tiempo, especialmente las señales de voz. El problema se debe a que la distribución del ruido de cuantificación se controla en el dominio de la frecuencia, pero se distribuye como una constante en el dominio del tiempo entre los bloques de transformación. Si la señal en ese bloque cambia significativamente, pero no se convierte en un bloque corto, escuchará esta distribución constante de ruido. El principio de TNS es aprovechar la dualidad del dominio del tiempo y el dominio de la frecuencia y la simetría tiempo-frecuencia de LPC (codificación predictiva lineal), es decir, codificar en cualquier dominio es equivalente a codificar en otro dominio, es decir, codificar. en un dominio puede aumentar la resolución de otro en otro dominio. El ruido de cuantificación se genera en el dominio de la frecuencia y reduce la resolución en el dominio del tiempo, por lo que la codificación predictiva se realiza en el dominio de la frecuencia. En AACplus, debido a que se basa en el perfil LC de AAC, el orden de filtrado de TNS está limitado a 12.
7. Transformada de coseno discreta inversa
El proceso de convertir datos de audio del dominio de la frecuencia al dominio del tiempo se logra principalmente llenando los datos del dominio de la frecuencia en un conjunto de filtros IMDCT. Después de la transformación IMDCT, los valores de salida se ventanan y se superponen para finalmente obtener el valor en el dominio del tiempo.
8. Replicación de banda de frecuencia (SBR)
En pocas palabras, el espectro principal de la música se concentra en la banda de baja frecuencia. La amplitud de la banda de alta frecuencia es pequeña. pero es muy importante y determina.
Calidad de sonido. Si se codifica toda la banda de frecuencia y se protege la banda de alta frecuencia, la banda de baja frecuencia se codificará de forma demasiado fina y el archivo será enorme si se conservan los componentes principales de baja frecuencia y los de alta frecuencia; se pierden, se perderá la calidad del sonido. SBR corta el espectro, codifica las frecuencias bajas por separado para guardar los componentes principales, amplifica las frecuencias altas por separado para guardar la calidad del sonido y lo guarda de manera "equilibrada" mientras reduce el tamaño del archivo.
La calidad del sonido soluciona perfectamente esta contradicción.
9. Estéreo paramétrico (PS)
Para los archivos estéreo anteriores, el tamaño del archivo es el doble que el del mono, pero el sonido de ambos canales existe.
Algunas similitudes, según el teorema de codificación de entropía de Shannon, deben eliminarse para reducir el tamaño del archivo. Por lo tanto, la tecnología PS almacena toda la información de un canal y luego utiliza unos pocos bytes como parámetros para describir otro canal y sus diferencias.