MPEG Layer-3

¿Qué es el MPEG Layer-3?

En octubre del año pasado salió un nuevo método de compresión denominado MPEG Layer-3 que reduce el tamaño de los sonidos digitalizados sin pérdida humanamente apreciable.

El MP3, abreviatura de MPEG Layer-3, pertenece a la familia MPEG donde están las capas Layer-1, Layer-2 y Layer-3 que aumenten en calidad de sonido y en régimen de Bits/Seg.

Capa

Ratio de compresión

Tipo de señal

Régimen del Kbps

Layer-1

1 : 4

Estéreo

384

Layer-2

1 : 6...1 : 8

Estéreo

256...192

Layer-3

1 : 10...1 : 12

Estéreo

128...112

Calidad del sonido

Ancho de banda

Modo

Régimen de Kbps

Ratio de compresión

Telefónico

2.5kHz

Mono

8Kbps

96 : 1

Mejor que onda corta

4.5kHz

Mono

16Kbps

48 : 1

Mejor que AM

7.5kHz

Mono

32Kbps

24 : 1

Similar FM

11kHz

Estéreo

56..64Kbps

26...24 : 1

Próximo CD

15kHz

Estéreo

96Kbps

16 : 1

CD

>15kHz

Estéreo

112...128Kbps

14...12 : 1

 

Compresión

El codificador analiza las componentes del espectro de frecuencias de la señal de sonido aplicándole un modelo psicoacústico para estimar el nivel de ruido apreciable. Todos los ficheros de las distintas capas tienen la misma información de cabecera con lo que consiguen ser compatibles hacia delante y además soportan información asociada con el programa que los usa dentro de su cadena de bits.

El sistema de codificación consume mucha CPU pero no se hace en tiempo real, sin embargo la descodificación si se lleva a cabo en tiempo real (la reproducción). La reproducción no consume muchos recursos, en la siguiente tabla se puede ver una relación.

Pentium

486dx4-133

486dx2-66

486dx-50

MPEG-1 estéreo

No

No

MPEG-1 downmix

No

MPEG-1 mono

MPEG-2 estéreo

MPEG-2 downmix

MPEG-2 mono

 

El mejor funcionamiento de Layer-3 se debe a que la resolución de la frecuencia es 18 veces más alta que las demás, lo cual permite al codificar corregir mucho más ruido. Además, Layer-3 utiliza codificación entrópica como el MPEG de vídeo.

Los métodos tradicionales de compresión sin pérdida de información como el LZH, Huffman, etc., no funcionan bien en la compresión de audio.

La compresión del MPEG Layer-3 se basa en que si nosotros oímos un sonido muy fuerte y se detiene de repente, tardamos un rato en percibir un sonido suave, debido a que el oído necesita tiempo en adaptarse al siguiente sonido; es decir el sonido fuerte enmascara al suave.

Algoritmo

La compresión del MPEG está basada en la eliminación de tonos suaves próximos a uno fuerte, esto es la llamada compresión psico-acústica en la que se basa MPEG teniendo en cuenta modelos de percepción humana del sonido para eliminar aquello no perceptible.

MPEG-1 usa 0.3Mbps para el CD audio, que descomprimido será:

44,100 muestras/seg x 16bits/muestra x 2 canales > 1,4 Mbps

luego con un factor de compresión de 6:1 resulta en:

16bits x Sterero x 48kHz x 256kbps

para lo cual se usó el grado de compresión más bajo (y de mayor calidad) disponible en layer-3. Actualmente se están haciendo pruebas en las que participan expertos escuchadores adiestrados, los cuales no fueron capaces de distinguir entre el sonido original y el comprimido.

El sistema en concreto usa unos filtros alrededor de la señal para dividirla en 32 sub-bandas de frecuencia, que usando este resultado determina el nivel de enmascaramiento que causa cada banda en la banda más cercana, no la codifica; al mismo tiempo determina el número de bits necesarios para representar el ruido introducido por el efecto máscara y los introduce en la cadena de bits

Formato

Los ficheros MPEG Layer-2 tienen la siguiente estructura:

Una cabecera de 12 bits de sincronización y 20 de información del sistema.

Un CRC (Código de Redundancia Cíclica de corrección de errores) de 16 bits.

Bit allocation que varía según las sub-bandas y que corresponde a 4 bits para las sub-bandas y que corresponde a 4 bits para las sub-bandas bajas, 3 bits para las intermedias y 2 bits para las sub-bandas altas.

Factores de escala codificados con 2 bits que describen la combinación que estamos usando.

Muestreos de sub-bandas cuantificados de acuerdo al bit allocation y agrupados de tres en tres, llamados gránulos.

Información específica del codificados sin longitud ni contenido definida pero se supone que de utilidad para este.

El formato MPEG-3 es mucho más complicado.

Crear un MP3

Primero deberás crear un fichero wav con el sonido que quieres convertir. Yo recomiendo el uso de los strippers si quieres comprimir alguna pista de CD audio porque con programas convencionales el sonido realiza las siguientes conversiones: Digital > Analógico > Digital, mientras con el uso de los strippers se graban directamente de la pista con lo que las conversiones quedaría: Digital > Digital, y no habría ningún tipo de pérdidas.

Una vez sampleado el sonido a 44,100Khz, 16 bits, Stereo pasamos a manejar el programa L3ENC de la siguiente manera:

L3enc <input>.wav <output>.mp3 -crc -hq -br 112000

<-crc> verifica errores.

<-hq> usa alta calidad, aunque a veces esta opción puede empeorar el sonido.

<-br 112000> grado de transferencia 112kbps, calidad CD.

La compresión de ficheros a MP3 es muy lento, el tiempo que emplea el programa en realizar el proceso depende del microprocesador. En un Pentium 100, un fichero de 4 minutos grabado con la máxima calidad tarda en comprimirlo media hora, más 4 minutos si añadimos la opción <-hq>.

Una vez comprimido para escuchar el sonido nos bastará ejecutar WinPlay3 y cargar el fichero MP3. Podrás comprobar que la larga espera al convertir el fichero ha merecido la pena.

Si aún hay gente que dude yo mismo hice una prueba y aquí están los datos:

Calidad de sonido: 44.100Hz, 16 Bits, Estéreo

Duración: Poco más de 5 minutos.

Tamaño de fichero wav: Más de 53 Megabytes.

Tiempo en comprimir: Casi 45 minutos.

Tamaño de fichero MP3: 4.01 Megabytes.

Y lo mejor de todo es que no se notaba diferencia.

Crear un WAV comprimir MPEG Layer-3

Para poder grabar un WAV en formato MPEG Layer-3 debes disponer del Microsoft NetShow 2.0 que puedes encontrar en la página de Microsoft. Una vez instalado te vas a un editor de ficheros wav, también sirve la grabadora de sonidos pero tiene como limitación 1 minuto. Una vez grabado con formato wav normal, abres el fichero con la grabadora de sonidos que viene con el Windows, vas a guardar como, cambia el formato a MPEG Layer-3 y elige la calidad que quieras, yo recomiendo 8kbits/s, 11,025Hz, Mono, pulsa ok y luego a aceptar.

Este fichero no podrá ser editado con ningún editor de ondas así que recomiendo que primero le pongas todos los efectos y luego lo conviertas.

Este fichero podrá ser utilizado en cualquier programa de Windows como documento OLE, para páginas Web (está página hace uso de ficheros con este formato) y cualquier otro programa que utilice el estándar de Windows (API) para escuchar ficheros wavs.

Si decides utilizar este formato en una página web solo se podrá escuchar si el visitante dispone del Microsoft NetShow 2.0 y del Internet Explorer 3.0x o superior.

Direcciones

La Web oficial de MPEG Audio Layer-3: http://pw2.netcom.com/~the-fly/index.html

MP3 - MPEG Audio Layer-3: http://ds.dial.pipex.com/beast/mp3/index.htm

Organización internacional sobre Estándares (ISO): http://www.iso.ch

Microsoft NetShow: http://www.microsoft.com/NetShow

WinPlay3: http://www.iis.fhg.de/departs/amm/layer3

Musearc: http://www.uni-karlsruhe.de/~ukly/

L3enc: http://www.iis.fhg.de/departs/amm/layer3/