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 ]
|