CODIFICADOR MP3 EN MATLAB

Este sitio está dedicado al formato de audio MPEG-1 Capa III


Contenido

Principal

Psicoacústica
Definición
Aspectos relevantes
Conclusión

Grupo MPEG
Historia
Estándares MPEG
Audio MPEG

Codificación MP3
La Capa III
Análisis psicoacústico
Filtro híbrido
Cuantización
Formato
Encabezado
Información secundaria
Datos principales

Descargas

Links


CODIFICACIÓN MP3

FORMATO DEL FLUJO DE BITS

El último paso en el proceso de codificación es producir un flujo de bits MP3 válido. Este bloque es el encargado de almacenar el audio codificado y algunos datos adicionales en tramas, donde cada trama contiene información de 1152 muestras de audio. Una trama consiste de encabezado y datos de audio junto con el chequeo de errores y los datos auxiliares, estos dos últimos opcionales. El encabezado describe, entre otros, cuál capa, tasa de bits y frecuencia de muestreo se están usando para el audio codificado. Los datos codificados con Huffman y su información secundaria están localizados en la parte de los datos de audio, donde la información secundaria dice qué tipo de bloque, tablas de Huffman y factores de ganancia deben ser usados.


Las tramas de audio. El audio en un flujo MPEG-1 está organizado de tal manera que cada fragmento del audio codificado (llamado trama) sea decodificable por sí mismo, con una posible excepción para la Capa III. La trama está constituida por las muestras de audio y por la información secundaria. Esta última sirve de control, además de proporcionar información del archivo. Para la Capa III, la trama está constituida por:

1 trama = 1152 muestras de audio + información de la trama


A la salida del banco de filtros polifásico, las muestras de audio se dividen por subbandas de la manera mostrada en la siguiente figura. Como se ve, cada subbanda aporta 12 muestras para un total de 384 muestras de audio, en la Capa I; mientras que para la Capa III, cada subbanda aporta 36 muestras de audio para un total de 1152 muestras subbanda por trama.


Una trama es un bloque de datos con su propio encabezado e información de audio. En el caso de las Capas I ó II, las tramas son elementos totalmente independientes, así que se puede extraer cualquier fragmento de datos del archivo MPEG y decodificarlo correctamente. Sin embargo, en el caso de la Capa III, las tramas no son totalmente independientes siempre: debido al posible uso del bit reservoir, que es una especie de búfer, las tramas son a menudo dependientes unas de otras. En el peor caso, se pueden necesitar hasta nueve tramas antes de poder realizar la decodificación de una sola. La siguiente figura puede servir como idea general.


main_data_begin es un puntero de ajuste negativo, incluido dentro de la información secundaria, que indica el inicio de la información de audio dentro de cada trama. Por ejemplo, main_data_begin_4 es igual a cero, indicando que los datos de audio empiezan inmediatamente después de la información secundaria. Para indicar que el audio de la trama 5 se inicia en la trama 4, se especifica main_data_begin_5 como un ajuste negativo que indica el desplazamiento en bytes hacia la izquierda para encontrar el primer dato de audio de la trama 5.

En el ejemplo se ve como cada trama permite el uso del bit reservoir. En el caso de la trama 7, el proceso empieza codificando la información de audio de su propia trama; como los datos requieren muy pocos bits, y la trama 6 tenía espacio disponible, entonces todos los datos de audio de la trama 7 se incluyen en la trama 6, pero la trama 6 sigue con espacio para bit reservoir, que se usa para datos de la trama 8; por lo que gracias al bit reservoir, la trama 6 incluye los datos de audio de tres (3) tramas: las tramas 6, 7 y 8. El audio de la trama 8 se reparte entre las tramas 6 y 7; sin embargo, éste no alcanza a ocupar todo el espacio disponible en la trama 7, así que el bit reservoir de la trama 7 se usa para la trama 9, y así sucesivamente, teniendo en cuenta que los datos de audio de una determinada trama no pueden estar desplazados más de nueve (9) tramas.

Este caso puede ocurrir en una señal de audio MPEG-1 estéreo, si la frecuencia de muestreo es 48 KHz y la tasa de transferencia deseada es 32 Kbps. En este caso, cada trama consume 768 bits, donde 304 bits (32 bits para el encabezado, 16 bits para el chequeo de errores, 256 bits para la información secundaria) son fijos. Por lo tanto, quedan 464 bits disponibles para los datos codificados con Huffman, y debido a que el valor de main_data_begin puede apuntar máximo 511 bytes (4088 bits) hacia atrás, entonces es posible que main_data_begin apunte sobre más de ocho (8) tramas (no se cuenta ninguno de los bits usados para el encabezado y la información secundaria de ninguna trama).

También es importante mencionar que el bit reservoir sólo puede originarse de tramas que ya han sido codificadas; para este búfer no es posible usar tramas para las que todavía no se haya hecho la repartición de los bits disponibles (repartición de ruido).

El formato que tiene cada trama se muestra en la siguiente figura, en la cual se puede ver el encabezado de trama que posee 32 bits (cuatro bytes) de longitud; los primeros 12 bits siempre se ponen en '1', se llaman "FRAME SYNC", y se usan para sincronización de la trama.


Las tramas pueden tener opcionalmente un CRC para chequeo de errores. Su longitud es de 16 bits, y si existe, se pone después del encabezado. Volviendo a calcular el CRC se puede comprobar si la trama ha sido alterada durante la transmisión del flujo de bits de audio MP3. A continuación sigue la información secundaria (Side Information) que indica cómo se realizó la codificación, y por lo tanto, cómo debe realizarse la decodificación. En el último bloque sí vienen los datos de audio (main data), repartidos entre dos (2) gránulos.

Dentro de la información secundaria, que usa 136 bits en modo monofónico y 256 bits en los otros modos, se incluye el main_data_begin, que es el puntero ya visto. Los bits privados están a disposición del usuario. Después viene la información que indica cuál combinación de factores de escala se está usando (scfsi, scalefactor selection information). Los últimos dos subbloques corresponden a la información secundaria (Side Info, SI) para cada uno de los dos gránulos (subtramas) en los que se divide una trama.

El último bloque, main data, es el que lleva la información de audio; las muestras MDCT codificadas con Huffman, repartidas entre dos gránulos. Cada gránulo contiene información de 576 muestras de audio (exactamente la mitad de la información total de la trama). Además, en este mismo bloque se incluyen los factores de escala de la trama y la información auxiliar, siendo esta última opcional.


[ Principal ]
Psicoacústica: [
Definición | Aspectos relevantes | Conclusión ]
Grupo MPEG: [
Historia | Estándares MPEG | Audio MPEG ]
Codificación MP3: [
La Capa III | Análisis psicoacústico | Filtro híbrido | Cuantización | Formato
Encabezado | Información secundaria | Datos principales ]
[
Descargas ]
[
Links ]