MPEG-1 Audio Layer 3, más conocido como MP3, conocido también

Anuncio
MP3
MPEG-1 Audio Layer 3, más conocido como MP3, conocido también por su grafía emepetrés, es
un formato de audio digital comprimido con pérdida desarrollado por el Moving Picture
Experts Group (MPEG) para formar parte de la versión 1 (y posteriormente ampliado en la
versión 2) del formato de video MPEG. Su nombre es el acrónimo de MPEG-1 Audio Layer 3.
Dentro de los estándares de vídeo MPEG (de los que hablaremos en temas posteriores) hay
también creados estándares de compresión de audio. Como se permiten distintas calidades
existen tres "capas" con distintos esquemas de compresión: la capa 1, la 2 y la 3 (de forma que la
complejidad es progresiva y un decodificador funciona también con las capas anteriores), y esta
última se conoce por MP3 o MPEG Audio Layer-3.
El MP3 permite comprimir en un factor aproximado de 12 la información original muestreada
(unos 120 Kbits por segundo, es decir, más o menos 1 Mb por minuto) sin perder calidad de
sonido de forma apreciable (por un oído no entrenado... y de hecho los estudios de percepción
de calidad de mp3 se han hecho con oyentes humanos opinando sobre las diferencias). Para
hacernos una idea aproximada de la compresión obtenida, en un CD-ROM podemos almacenar
unos 700 minutos de música, es decir, más de ¡11 horas! (unas 175 canciones de 4 minutos cada
una).
Formato
Compresión
Kb/seg
Layer1
4a1
384
Layer2
6a1
8a1
256
192
Layer3
10 a 1
12 a 1
128
112
Este formato fue desarrollado principalmente por Karlheinz Brandenburg, director de
tecnologías de medios electrónicos del Instituto Fraunhofer IIS, perteneciente a una red de 47
centros de investigación alemanes que junto con Thomson Multimedia controla el grueso de las
patentes relacionadas con el MP3. La primera de ellas fue registrada en 1986 y varias más en
1991. Pero no fue hasta julio de 1995 cuando Brandenburg usó por primera vez la extensión
.mp3 para los archivos relacionados con el MP3 que guardaba en su ordenador. Un año después
su instituto ingresaba en concepto de patentes 1,2 millones de euros. Diez años más tarde esta
cantidad ha alcanzado los 26,1 millones.
El formato MP3 se convirtió en el estándar utilizado para streaming de audio y compresión de
audio de alta calidad (con pérdida en equipos de alta fidelidad) gracias a la posibilidad de
ajustar la calidad de la compresión, proporcional al tamaño por segundo (bitrate), y por tanto el
tamaño final del archivo, que podía llegar a ocupar 12 e incluso 15 veces menos que el archivo
original sin comprimir.
Fue el primer formato de compresión de audio popularizado gracias a Internet, ya que hizo
posible el intercambio de ficheros musicales. Esto derivó en procesos judiciales contra empresas
como Napster y AudioGalaxy.
Tras el desarrollo de reproductores autónomos, portátiles o integrados en cadenas musicales
(estéreos), el formato MP3 llega más allá del mundo de la informática.
A principios de 2002 otros formatos de audio comprimido como Windows Media Audio y Ogg
Vorbis empiezan a ser masivamente incluidos en programas, sistemas operativos y
reproductores autónomos, lo que hizo prever que el MP3 fuera paulatinamente cayendo en
desuso, en favor de otros formatos, como los mencionados, de mucha mejor calidad. Uno de los
factores que influye en el declive del MP3 es que tiene patente. Técnicamente no significa que su
calidad sea inferior ni superior, pero impide que la comunidad pueda seguir mejorándolo y
puede obligar a pagar por la utilización de algún códec, esto es lo que ocurre con los
reproductores de MP3. Aún así, a inicios del 2007, el formato mp3 continua siendo el más usado
y el que goza de más éxito.
El formato mp3 utiliza unos cuantos trucos para comprimir el sonido, fundamentalmente
técnicas de codificación de percepción que aprovechan la manera en la que el oído humano
percibe el sonido. Veamos algunas de las claves:
Umbral mínimo de audición.
El umbral mínimo de audición humano (minimal audition threshold) no es lineal. De
acuerdo a la ley de Fletcher y Munsen, se representa por una curva entre 2 y 5 KHz. Cualquier
sonido situado fuera de este margen puede no codificarse, ya que no será percibido de
cualquier modo.
Efecto máscara.
Hay una serie de propiedades de ocultación (masking effect) del oído humano. De la
misma forma que al mirar a un objeto muy brillante se anula la percepción de otros objetos que
puedan cruzarlo, en audio los sonidos fuertes no dejan oir a los débiles. Para conseguir
aprovechar esta característica mp3 usa un modelo psicoacústico del comportamiento del oído
humano, que filtra los sonidos más débiles cuando hay sonidos muy fuertes a la vez.
Reserva de bytes.
Partes de una obra pueden no ser codificados por debajo de un número de bytes por
segundo para mantener la calidad. En estos casos, mp3 usa partes que sí pueden codificarse en
un tamaño inferior para almacenar parte de los otros, de modo que actúa como una especie de
buffer de las partes más exigentes.
Fusión de estéreo.
En muchas músicas, en frecuencias determinadas, el oído humano no puede distinguir el
origen espacial de los sonidos de un canal u otro del estéreo. En este caso mp3 puede fusionar
las dos señales en una única (mono) añadiendo quizás alguna información de diferenciación de
canales para disminuir al mínimo la información determinada por la diferencia entre uno y otro
canal.
Codificación de Huffman.
El código Huffman se aplica al final de la compresión. En cierto modo complementa a las
otras partes de la codificación mp3: en algunas partes polifónicas se puede reducir mucha
información enmascarada o de estéreo, y en ese caso habrá poca redundancia (y por ello poca
reducción por codificación Huffman); mientras que en partes de solos se podrán aplicar pocos
efectos de máscara pero habrá muchos bytes redundantes (mucha reducción por Huffman).
Detalles técnicos
En esta capa existen varias diferencias respecto a los estándares MPEG-1 y MPEG-2, entre las
que se encuentra el llamado banco de filtros híbrido que hace que su diseño tenga mayor
complejidad. Esta mejora de la resolución frecuencial empeora la resolución temporal
introduciendo problemas de pre-eco que son predecidos y corregidos. Además, permite calidad
de audio en tasas tan bajas como 64Kbps.
Banco de filtros
El banco de filtros utilizado en esta capa es el llamado banco de filtros híbrido polifase/MDCT.
Se encarga de realizar el mapeado del dominio del tiempo al de la frecuencia tanto para el
codificador como para los filtros de reconstrucción del decodificador. Las muestras de salida
del banco están cuantizadas y proporcionan una resolución en frecuencia variable, 6x32 o 18x32
subbandas, ajustándose mucho mejor a las bandas críticas de las diferentes frecuencias. Usando
18 puntos, el número máximo de componentes frecuenciales es: 32 x 18 = 576. Dando lugar a
una resolución frecuencial de: 24000/576 = 41,67 Hz (si fs = 48 Khz.). Si se usan 6 líneas de
frecuencia la resolución frecuencial es menor, pero la temporal es mayor, y se aplica en aquellas
zonas en las que se espera efectos de preeco (transiciones bruscas de silencio a altos niveles
energéticos).
La Capa III tiene tres modos de bloque de funcionamiento: dos modos donde las 32 salidas del
banco de filtros pueden pasar a través de las ventanas y las transformadas MDCT y un modo de
bloque mixto donde las dos bandas de frecuencia más baja usan bloques largos y las 30 bandas
superiores usan bloques cortos. Para el caso concreto del MPEG-1 Audio Layer 3 (que
concretamente significa la tercera capa de audio para el estandar MPEG-1) especifica cuatro
tipos de ventanas: (a) NORMAL, (b) transición de ventana larga a corta (START), (c) 3 ventanas
cortas (SHORT), y (d) transición de ventana corta a larga (STOP).
El modelo psicoacústico
La compresión se basa en la eliminación de información perceptualmente irrelevante, es decir,
en la incapacidad del sistema auditivo para detectar los errores de cuantificación en condiciones
de enmascaramiento. Este estándar divide la señal en bandas de frecuencia que se aproximan a
las bandas críticas, y luego cuantifica cada subbanda en función del umbral de detección del
ruido dentro de esa banda. El modelo psicoacústico es una modificación del empleado en el
esquema II, y utiliza un método denominado predicción polinómica. Analiza la señal de audio
y calcula la cantidad de ruido que se puede introducir en función de la frecuencia, es decir,
calcula la “cantidad de enmascaramiento” o umbral de enmascaramiento en función de la
frecuencia.
El codificador usa esta información para decidir la mejor manera de gastar los bits disponibles.
Este estándar provee dos modelos psicoacústicos de diferente complejidad: el modelo I es
menos complejo que el modelo psicoacústico II y simplifica mucho los cálculos. Estudios
demuestran que la distorsión generada es imperceptible para el oído experimentado en un
ambiente óptimo desde los 256 kbps y en condiciones normales y para el oído no
experimentado 128 kbps es suficiente. Para el oído no experimentado, o común, con 128 kbps o
hasta 96 kbps basta para que se oiga "bien" (a menos que se posea un equipo de audio de alta
calidad donde se nota excesivamente la falta de graves y se destaca el sonido de "fritura" en los
agudos), sin embargo, en las personas que escuchan mucha música o que tienen experiencia en
la parte auditiva, desde 192 o 256 kbps basta para oír bien, lamentablemente en internet circula
música a 128 kbps en su gran mayoría.
Codificación y cuantificación
La solución que propone este estándar en cuanto a la repartición de bits o ruido se hace en un
ciclo de iteración que consiste de un ciclo interno y uno externo. Examina tanto las muestras de
salida del banco de filtros como el SMR (signal-to-mask ratio) proporcionado por el modelo
psicoacústico, y ajusta la asignación de bits o ruido, según el esquema utilizado, para satisfacer
simultáneamente los requisitos de tasa de bits y de enmascaramiento. Dichos ciclos consisten
en:
(i)Ciclo interno. El ciclo interno realiza la cuantización no-uniforme de acuerdo con el sistema
de punto flotante (cada valor espectral MDCT se eleva a la potencia 3/4). El ciclo escoge un
determinado intervalo de cuantización y, a los datos cuantizados, se les aplica codificación de
Huffman en el siguiente bloque. El ciclo termina cuando los valores cuantizados que han sido
codificados con Huffman usan menor o igual número de bits que la máxima cantidad de bits
permitida.
(ii)Ciclo externo. Ahora el ciclo externo se encarga de verificar si el factor de escala para cada
subbanda tiene más distorsión de la permitida (ruido en la señal codificada), comparando cada
banda del factor de escala con los datos previamente calculados en el análisis psicoacústico. El
ciclo externo termina cuando una de las siguientes condiciones se cumple:
Ninguna de las bandas del factor de escala tiene mucho ruido.
Si la siguiente iteración amplifica una de las bandas más de lo permitido.
Todas las bandas han sido amplificadas al menos una vez.
Empaquetado o formateador de bitstream
Este bloque toma las muestras cuantificadas del banco de filtros, junto a los datos de asignación
de bits/ruido y almacena el audio codificado y algunos datos adicionales en las tramas. Cada
trama contiene información de 1152 muestras de audio y consiste de un encabezado, de los
datos de audio junto con el chequeo de errores mediante CRC y de los datos auxiliares (estos
dos últimos opcionales). El encabezado nos describe cuál capa, tasa de bits y frecuencia de
muestreo se están usando para el audio codificado. Las tramas empiezan con la misma cabecera
de sincronización y diferenciación y su longitud puede variar. Además de tratar con esta
información, también incluye la codificación Huffman de longitud variable, un método de
codificación entrópica que sin pérdida de información elimina redundancia. Actúa al final de la
compresión para codificar la información. Los métodos de longitud variable se caracterizan, en
general, por asignar palabras cortas a los eventos más frecuentes, dejando las largas para los
más infrecuentes.
Estructura de un fichero MP3
Un fichero Mp3 se constituye de diferentes frames MP3 que a su vez se componen de una
cabecera Mp3 y los datos MP3. Esta secuencia de datos es la denominada stream elemental.
Cada uno de los Frames son independientes, es decir, una persona puede cortar los frames de
un fichero MP3 y después reproducirlos en cualquier reproductor MP3 del Mercado. El grafico
muestra que la cabecera consta de una palabra de sincronismo que es utilizada para indicar el
principio de un frame valido. A continuación siguen una serie de bits que indican que el fichero
analizado es un fichero Standard MPEG y si usa o no la capa 3. Después de todo esto los valores
difieren dependiendo del tipo de archivo MP3. Los rangos de valores quedan definidos en la
ISO/IEC 11172-3.
Señal Longitud
(bits)
Posición Descripción
(bits)
A
11
(31-21)
Sincronización (todos los bits a 1)
B
2
(20,19)
Versión MPEG Audio
00 - MPEG Versión 2.5
01 - reserved
10 - MPEG Versión 2 (ISO/IEC 13818-3)
11 - MPEG Versión 1 (ISO/IEC 11172-3)
Nota: MPEG Versión 2.5 fue añadida al estándar MPEG 2, usada
para bitrates muy bajos. Para decodificadores que no soporten esta
extensión se recomienda el uso de 12 bits para sincronización en vez
de 11.
C
2
(18,17)
Descripción de nivel
00 - reserved
01 - Layer III
10 - Layer II
11 - Layer I
D
1
(16)
Bit de Protección
0 – Protegido por CRC
1 - No protegido
E
4
(15,12)
Bitrate en kbps
bits V1,L1 V1,L2 V1,L3 V2,L1 V2, L2 & L3
0000 Libre Libre Libre Libre
Libre
0001 32
32
32
32
8
0010 64
48
40
48
16
0011 96
56
48
56
24
0100 128
64
56
64
32
0101 160
80
64
80
40
0110 192
96
80
96
48
0111 224
112
96
112
56
1000 256
128
112
128
64
1001 288
160
128
144
80
1010 320
192
160
160
96
1011 352
224
192
176
112
1100 384
256
224
192
128
1101 416
320
256
224
144
1110 448
384
320
256
160
1111 Mal
Mal
Mal
Mal
Mal
V1 - MPEG Versión 1
V2 - MPEG Versión 2 y Versión 2.5
L1 - Layer I
L2 - Layer II
L3 - Layer III
"libre": formato libre. Debe ser constante y por debajo del máximo
permitido. No tiene por qué ser aceptado por un decodificador.
"mal": valor no permitido.
Algunos ficheros MPEG usan bitrate variable (VBR). Cada frame
puede poseer un bitare diferente. Esta característica es soportada
por los decodificadores Layer III, no por todos los de Layer I y II
F
2
(11,10)
Frecuencia de muestreo
bits MPEG1 MPEG2 MPEG2.5
00 44100 Hz 22050 Hz 11025 Hz
01 48000 Hz 24000 Hz 12000 Hz
10 32000 Hz 16000 Hz 8000 Hz
11 reserv.
G
1
(9)
reserv.
reserv.
Bit de ajuste
0 - frame no ajustado
1 - frame ajustado con un slot extra
Sirve para asegurarnos que cada frame cumple los requisitos del
bitrate.
H
1
(8)
Bit Privado, informativo. Si no existe, se pone un checksum de 16
bits antes de los datos de audio
I
2
(7,6)
Modo
00 - Stereo
01 - Joint stereo (Stereo)
10 - Dual channel (2 mono channels)
11 - Single channel (Mono)
Nota: Los archivos de canal dual se construyen a partir de dos mono
independientes, cada uno usa la mitad del bitrate.
J
2
(5,4)
Extensión de Modo (para Joint stereo)
Determinados directa y dinámicamente por un codificador. Se
divide el rango de frecuencias en 32 subbandas. Para Layer I y II los
bits determinan las bandas donde se aplica el estéreo intenso. Para
Layer III determinan qué tipo de estéreo se usa (intenso o MS)
Layer I y II
valor Layer I & II
Layer III
Intenso MS
00
bandas 4 a 31
off
off
01
bandas 8 a 31
on
off
K
1
(3)
10
bandas 12 a 31
off
on
11
bandas 16 a 31
on
on
Copyright
0 - Audio sin copyright
1 - Audio con copyright
L
1
(2)
Originalidad
0 - Copia
1 - Original
M
2
(1,0)
Énfasis
00 - no
01 - 50/15 ms
10 – reservado
11 - CCIT J.17
Indica al decodificador si el fichero ha de ser re-ecualizado. No se
suele usar
Transformada de Fourier discreta
En matemáticas, la transformada de Fourier discreta, designada con frecuencia por la
abreviatura DFT (del inglés discrete Fourier transform), y a la que en ocasiones se denomina
transformada de Fourier finita, es una transformada de Fourier ampliamente empleada en
tratamiento de señales y en campos afines para analizar las frecuencias presentes en una señal
muestreada, resolver ecuaciones diferenciales parciales y realizar otras operaciones, como
convoluciones. Es utilizada en el proceso de elaboracion de un fichero MP3.
La transformada de Fourier discreta puede calcularse de modo muy eficiente mediante el
algoritmo FFT.
WAV
WAV (o WAVE), apócope de WAVEform audio format, es un formato de audio digital
normalmente sin compresión de datos desarrollado y propiedad de Microsoft y de IBM que se
utiliza para almacenar sonidos en el PC , admite archivos mono y estéreo a diversas
resoluciones y velocidades de muestreo, su extensión es .wav.
Es una variante del formato RIFF (Resource Interchange File Format, formato de fichero para
intercambio de recursos), método para almacenamiento en "paquetes", y relativamente parecido
al IFF y al formato AIFF usado por Macintosh. El formato toma en cuenta algunas
peculiaridades de la CPU Intel, y es el formato principal usado por Windows.
A pesar de que el formato WAV puede soportar casi cualquier códec de audio, se utiliza
principalmente con el formato PCM (no comprimido) y al no tener pérdida de calidad puede
ser usado por profesionales, Para tener calidad Disco compacto se necesita que el sonido se
grabe a 44100 Hz y a 16 bits, por cada minuto de grabación de sonido se consumen unos 5
megabytes de disco duro. Una de sus grandes limitaciones, debida realmente al sistema
operativo MS Windows, es que solo se puede grabar un archivo de hasta 4 gigabites, que
equivale aproximadamente a 6,6 horas en calidad disco compacto.
En Internet no es popular, fundamentalmente porque los archivos sin compresión son muy
grandes. Son más frecuentes los formatos comprimidos con pérdida, como el MP3 o el Ogg
Vorbis. Como éstos son más pequeños la transferencia a través de Internet es mucho más
rápida. Además existen códecs de compresión sin pérdida más eficaces como Apple Lossless o
FLAC.
El formato de los ficheros .WAV es el siguiente:
Bytes
Contenido Usual
Propósito/Descripción
00 - 03
"RIFF"
Bloque de identificación (sin comillas).
04 - 07
???
Entero largo. Tamaño del fichero en bytes, incluyendo
cabecera.
08 - 11
"WAVE"
Otro identificador.
12 - 15
"fmt "
Otro identificador
16 -19
16, 0, 0, 0
Tamaño de la cabecera hasta este punto.
20 - 21
1, 0
Etiqueta de formato. (Algo así como la versión del tipo de
formato utilizado).
22 - 23
1, 0 (mono) ; 2,0
(estéreo)
Número de canales (2 si es estéreo).
24 – 27
???
Frecuencia de muestreo (muestras/segundo).
28 – 31
???
Número medio de bytes/segundo.
32 – 33
1, 0
Bytes por muestra
34 – 35
8, 0
Número de Bits por muestra (normalmente 8, 16 ó 32).
36 – 39
"data"
Marcador que indica el comienzo de los datos de las muestras.
40 – 43
???
Número de bytes muestreados.
Resto
???
Muestras (cuantificación uniforme)
Cabecera RIFF
El fichero RIFF lleva siempre una cabecera de 8 bytes, que identifica al fichero y especifica la
longitud de los datos a partir de la cabecera (esto es, la longitud total menos 8).
Esta cabecera se compone de 4 bytes con el contenido "RIFF" y los otros 4 indican la longitud.
Después de la cabecera RIFF siempre hay 4 bytes que identifican el tipo de los datos que
contiene; para el caso .WAV estos 4 bytes contienen "WAVE".
Chunks RIFF
Los datos de un fichero RIFF se componen de una secuencia de chunks, cada uno de los cuales
consta de un campo de identificación de 4 bytes, una longitud de datos de 4 bytes y el conjunto
de los datos. Al procesar un fichero RIFF, se deben ignorar los segmentos desconocidos, para
asegurar compatibilidad con futuras definiciones de los formatos de fichero.
Generalidades del formato WAVE
Del conjunto de segmentos que se definen para el formato WAVE existen dos que son
obligatorios: el segmento de formato y el segmento de datos. Además el segmento de formato
debe aparecer antes que el segmento de datos.
El resto de segmentos son opcionales, aunque como se verá más adelante el segmento FACT es
obligatorio en algunos casos.
Segmento de formato (Format Chunk)
El segmento de formato identifica por "fmt " y se compone de dos elementos: un conjunto de
campos comunes y un conjunto de campos específicos.
Este último puede no aparecer, en función del formato concreto elegido. Los campos comunes
pueden representarse en la siguiente estructura:
Categorías del formato WAVE
La categoría se especifica a través del campo wFormatTag. Los campos específicos del
segmento de formato y la representación de los datos en el segmento de datos dependen de este
valor.
Actualmente se han definido los siguientes formatos no propietarios:
Formato WAVE_FORMAT_PCM
Este formato define un único campo específico que indica el número de bits por muestra de
cada canal.Si este campo está comprendido entre 1 y 8 bits, el valor que se almacena en una
muestra es un entero sin signo. Si su valor supera los 8 bits entonces el valor almacenado en las
muestras es un entero con signo.
Este campo, dividido entre ocho y redondeado al entero mayor más próximo indica el número
de bytes por muestra, y permite estimar el campo wAvgBytesPerSec como:
wChannels � wSamplesPerSecond � BytesPerSample
Del mismo modo se puede calcular el valor de wBloackAlign de la siguiente forma:
wChannels � BytesPerSample
La ordenación de los bytes de datos es la siguiente: los datos se organizan en bloques de
wBlockAlign bytes. Estos bloques son una secuencia de las muestras para cada canal (en
estéreo 0 es izquierdo y 1 es derecho), dentro de cada canal el byte menos significativo va
primero.
Segmento de datos (Data Chunk)
El segmento de datos puede ser de dos tipos: tipo data o tipo data-list.
El primero es una secuencia de datos sin más elementos. El segundo en una secuencia de dos
tipo de segmentos: de datos o de silencio.
Un segmento tipo data se identifica por "data", mientras que un segmento tipo data-list se
identifica por "wavl". Los segmentos de silencio ("slnt") sólo contienen un campo que es una
doble palabra con el número de muestras a mantener el silencio.
NOTA: El valor de las muestras de silencio no deben ser asignadas a cero, sino al valor de la
última muestra reproducida. De lo contrario, puede oírse un 'click' debido al salto que recibe el
conversor D/A de salida. Es responsabilidad de la aplicación evitar este 'click' al igual que el
que se puede producir al final del silencio.
Segmento FACT
El segmento FACT tiene como objetivo almacenar información importante sobre los datos del
fichero. Es un segmento obligatorio en caso de que el campo de datos sea de tipo data-list y con
cualquier tipo de compresión.
La definición básica de este segmento contiene un único campo (dwFileSize) pero en futuras
definiciones del formato WAVE ampliará su contenido por lo que se debe usar el campo
longitud de la cabecera del segmento para determinar los campos que están presentes.
Segmento Cue-Points
Este segmento ("cue") tiene como objetivo marcar determinadas posiciones dentro de la forma
de onda que contiene el fichero. El segmento consta de un campo dwCuePoints indicando el
número de puntos a posicionar y una secuencia de estructuras como la siguiente:
Segmento Playlist
Especifica un orden de reproducción a partir de diferentes posiciones en el fichero. Se identifica
por "plst" y contiene un campo dwSegments, que indica el número de segmentos que se
reproducen y a continuación una lista de estructuras que describen el segmento a reproducir:
Segmento de datos asociados
Este segmento se identifica por "adtl" y permite asociar información a secciones de la forma de
onda del fichero. Se define como una lista de otros segmentos que son:
•
Etiqueta ("labl")
•
Nota ("note")
•
Texto con información de longitud de datos ("ltxt")
•
Información de fichero embebido ("file")
Segmentos "labl" y "note"
Su formato es similar, "labl" contiene una etiqueta o título asociado a una determinada posición
de la forma de onda y "note" aporta un comentario sobre esa posición. Los dos segmentos
constan de dos campos: un campo dwName que identifica el punto de la forma de onda
considerado y un campo data que es una cadena terminada con un carácter nula que especifica
el contenido de la etiqueta o la nota.
Segmento "ltxt"
Este segmento contiene información asociada a una porción de datos de una longitud
determinada. Los campos de los que se compone son los siguientes:
Segmento "file"
Este segmento contiene información descrita en otros formatos de fichero. Su formato es el
siguiente:
Ogg Vorbis
Vorbis es un códec de audio libre de compresión con pérdida. Forma parte del proyecto Ogg y
entonces es llamado Ogg Vorbis y también (incorrectamente) sólo ogg por ser más corto de
escribir (y decir) y por ser el códec más comúnmente encontrado en el contenedor Ogg.
Introducción
Vorbis es un códec de audio perceptivo de fines generales previsto para permitir flexibilidad
máxima del codificador y así permitiéndole escalar competitivamente sobre una gama
excepcionalmente amplia de bitrates. En la escala de nivel de calidad/bitrate (CD audio o DATrate estéreo, 16/24 bits) se encuentra en la misma liga que MPEG-2 y Musepack (MPC) y
comparable con AAC en la mayoría de bitrates. Similarmente, el codificador 1.0 puede codificar
niveles de calidad desde CD audio y DAT-rate estéreo hasta 48kbps sin bajar la frecuencia de
muestreo. Vorbis también está pensado para frecuencias de muestreo bajas desde telefonía de
8kHz y hasta alta definición de 192kHz, y una gama de representaciones de canales (monoaural,
polifónico, estéreo, quadrafónico, 5.1, ambisónico o hasta 255 canales discretos).
Ogg Vorbis es totalmente abierto, libre de patentes y de regalías; la biblioteca de referencia
(libvorbis) se distribuye bajo una licencia tipo BSD por lo que cualquiera puede implementarlo
ya sea tanto para propósitos comerciales como no comerciales.
Historia
Vorbis es el primer códec desarrollado como parte de los proyectos multimedia de la Fundación
Xiph.org. Comenzó inmediatamente después que Fraunhofer IIS (creadores del MP3) enviaran
una "carta de infracción" a varios proyectos pequeños que desarrollan MPEG Audio Layer 3,
mencionando que debido a las patentes que poseen sobre el MP3 tienen el derecho de cobrar
regalías por cualquier reproductor comercial, todos los codificadores (ya sea vendidos o
gratuitos) y también trabajos de arte vendidos en formato MP3. Por este motivo fue creado el
Ogg Vorbis y la Fundación Xiph.org: para proteger la multimedia en Internet del control de
intereses privados.
El formato del bitstream para Vorbis I fue congelado el 8 de Mayo de 2000; todos los archivos
creados desde esa fecha seguirán siendo compatibles con futuros lanzamientos de Vorbis.
La versión 1.0 fue anunciada en Julio 2002, con una «Carta de anuncio de Ogg-Vorbis 1.0»
agradeciendo el apoyo recibido y explicando el porqué es necesario el desarrollo de códecs
libres.
Vorbis recibe este nombre de un personaje del libro Dioses menores de Terry Pratchett.
Ogg es el nombre que recibe un proyecto que tenía como objetivo diseñar un nuevo sistema
multimedia de código abierto. La segunda parte del nombre viene de la denominación que se
dio al esquema de compresión de audio usado para crear archivos con este formato. De ahí que
el nombre de este nuevo formato sea Ogg Vorbis. Como es lógico, la extensión que toman los
ficheros bajo este formato es .ogg. Ogg Vorbis es un nuevo formato de compresión de audio con
calidad digital tanto para grabar como para reproducir música. Es comparable a los formatos
mencionados anteriormente, aunque cuenta con una característica que le diferencia de los
demás y que además es bastante importante, y es que es completamente gratuito y no está
sujeto a ninguna patente. A partir de este momento comenzaron a aparecer diferentes
componentes de software, de los que luego hablaremos, entre los que no solo encontramos
reproductores del formato, sino que además podremos tener acceso al código del formato
mediante herramientas de desarrollo que los programadores podrán usar para comenzar a
trabajar universalmente con Ogg vorbis.
Ogg Vorbis está basado en la licencia pública general de GNU. GNU es el nombre que recibe un
proyecto que data del año 1984 cuyo objetivo era el desarrollo de un sistema operativo basado
en Unix y con la calificación de software libre. Estos sistemas son hoy en día muy usados bajo el
nombre de Linux. El término de Software Libre está asociado íntimamente con el proyecto
GNU, y por tanto a Ogg Vorbis, y se basa en la libertad que según los miembros de este
proyecto debería existir sobre el software. Para quienes configuran el GNU el hecho de no
poseer software libre, supone una privación de la tecnología a cierto sector de la sociedad, algo
que no debería estar permitido y que seguirá siendo así mientras exista el copyright. Ogg
Vorbis se rige en su totalidad por las normas del proyecto GNU, por lo que se considera un
sistema libre que podrá circular, copiarse, mejorarse de manera libre. El código de desarrollo de
este formato, está a disposición de los programadores para ir puliendo los pequeños defectos
que pueda tener, al tiempo que se mejora su implementación. El objetivo se sitúa en que algún
día, todo el software que requiera de contenido de audio, sea desarrollado y distribuido con
código de Ogg Vorbis. Por tanto, no está sujeto a patentes como lo está MP3, y su uso no
implica la obligación de abonar una cantidad al grupo de desarrollo de Ogg Vorbis. Tenemos
un formato de calidad futurible, que no nos dará una sorpresa dentro de un mes, haciéndose de
pago. Esto implica un posible soporte para otras empresas, que pueden añadir música de
calidad a sus creaciones sin tener que pensar en el presupuesto necesario para poder usar la
tecnología actual.
La intención de Ogg Vorbis es conseguir una mayor aceptación que el resto de formatos
destinados al mismo fin. Pero para lograrlo, el mejor argumento siempre es poseer la mejor
calidad, por ello, y aunque las comparaciones son odiosas, el mp3 es el punto de referencia
sobre el que fijarnos a la hora de evaluar este formato. En una hipotética situación de
compresión de una misma canción, tanto en formato mp3 a 128 kbps como en formato ogg, el
espacio que ambos ficheros ocuparían en disco es el mismo aproximadamente, aunque en el
segundo caso, la calidad auditiva sería superior. La explicación se debe fundamentalmente a los
valores de muestreo en los que es capaz de trabajar este formato, llegando desde los 16 kbps
hasta los 128 kbps por canal, aunque en las especificaciones del formato no se detalla
específicamente que no se pueda codificar un archivo a 8 kbps o 512 kbps. Ogg Vorbis tiene una
muy bien definida cabecera para comentarios en los archivos, que es extensible y fácil de usar,
sin tener que usar etiquetas de ID3. Posee además una escala de muestreo, es decir, una función
que permite cambiar la cantidad de muestra de un archivo o transmisión sin tener que
recodificar el archivo entero, con el tiempo que ello conlleva, simplemente se acortan los
paquetes al tamaño deseado. Los archivos Vorbis pueden ser troceados y luego editados con
extraordinaria fineza de muestreo, y puede implementar canales múltiples, no solamente uno o
dos. Además, los archivos en Vorbis se pueden encadenar lógicamente.
Vorbis utiliza la Transformada de coseno discreta modificada (MDCT) a diferencia de MP3, que
usa la Transformada rápida de Fourier (FFT).
Para que realmente sea útil, el formato debe ser soportado por una serie de aplicaciones que
provean la funcionalidad mínima exigida al formato, en el mayor número de ámbitos posibles.
Ogg Vorbis está fuertemente impuesto en aplicaciones como:
•
Icecast (audio streaming10)
•
XMMS (reproductor de audio)
•
Sonique (reproductor de audio)
•
Winamp (reproductor de audio)
•
Serious Sam (como música de un videojuego)
•
Super Audio Converter (conversor de formatos)
Flujos de datos OGG
Los codecs OGG usan vectores de octetos de datos comprimidos (paquetes). Estos paquetes no
tienen información estructural o delimitadora. Estos paquetes pueden ser usados directamente
por mecanismos de transporte que proporcionan su proporcionan su propios mecanismos de
framing y separación de paquetes. Para el almacenamiento y transporte basados en flujos,
Vorbis usa el formato de flujo OGG para proporcionar framing/sincronización,
resincronización tras errores, marcas durante la búsqueda, y suficiente información para
separar los datos en los paquetes.
Los paquetes raw se agrupan y codifican en páginas contiguas de flujos de bits estructurados
llamados flujos lógicos. Un flujo lógico contiene páginas pertenecientes a un único códec.
Cada página es una entidad autocontenida, esto es, el mecanismo que decodifica la página
está diseñado para reconocer, verificar y gestionar individualmente páginas del flujo. Se
pueden combinar (con restricciones) varios flujos lógicos en un flujo físico. Un flujo físico
consiste en múltiples flujos lógicos multiplexados al nivel de página y puede incluir una meta
cabecera al principio del flujo lógico multiplexado que sirve como identificador. Se toman
ordenadamente páginas completas de los flujos lógicos y se combinan en un único flujo físico
de páginas. El decodificador reconstruye los flujos lógicos originales a partir del físico
tomando las páginas en orden y redireccionándolas en la entidad lógica apropiada. El flujo
físico más simple está compuesto de un único flujo lógico sin multiplexar, sin cabecera, al que
se le llama “flujo degenerado”.
El flujo de transporte OGG está diseñado para proporcionar framing, protección ante errores y
estructuras de búsqueda para flujos de códecs de nivel superior que consisten en paquetes de
datos sin encapsular como el códec de audio Vorbis o el de vídeo Theora.
MP3 Surround
MP3 Surround es un tipo de archivo MP3 que soporta canales 5.1 de audio. Fue desarrollado
por Fraunhofer IIS en colaboración con Agere Systems. El codificador actual tiene licencia de
uso personal y no comercial. Un archivo MP3 surround puede ser creado a partir de canales 5 o
6 de audio WAV.
MP3 ha sido sinónimo de almacenamiento y transmisión estéreo en los últimos 15 años. Sin
embargo, cada vez es más común que los hogares dispongan de un entorno de sonido
multicanal. Una consecuencia de esta tendencia será un aumento en la demanda de material
audio multicanal frente al estéreo. Por ello se vio la necesidad de ofrecer un formato multicanal
a la comunidad de usuarios de MP3 para la representación eficiente de sonido surround.
Naturalmente, es importante mantener cierto grado de compatibilidad con los sistemas MP3
existentes y facilitar una suave migración hacia tecnologías de transmisión y reproducción
multicanal.
La siguiente figura ilustra la estructura general de un codificador MP3 surround para el caso de
una señal multicanal 3/2 (L, R, C, Ls, Rs). Como primer paso, un canal doble compatible con
estéreo (Lc, Rc) es generado a partir de la información multicanal. Esta señal estéreo se codifica
con un codificador MP3 convencional, al tiempo que se extrae un conjunto de parámetros
espaciales (ICLD, ICRD, ICC) de la señal multicanal. Estos parámetros se codifican e incluyen
como datos de mejora surround en el flujo MP3 para aquellos decodificadores con capacidad
para tratarla.
La siguiente figura muestra la parte de decodificación. El flujo MP3 surround se
decodifica en una señal compatible estéreo que se puede reproducir directamente en unos
altavoces estéreo. Debido a que este paso se basa en Audio MPEG-1, cualquier decodificador
MP3 puede realizarlo. Los decodificadores MP3 surround podrían detectar las mejoras
surround embebidas y, en su caso, transformar la señal de dos canales en multicanal usando un
decodificador BCC (Binaural Cue Coding).
El proceso MP3 surround implica información tanto de una versión multicanal como una
versión estéreo de la señal. Por lo tanto, es necesario proporcionar ambas versiones
simultáneamente. El enfoque más común es obtener una señal estéreo de una señal multicanal
(downmixing) . Esto implica una combinación lineal de ciertas señales de los canales para
obtener las señales estéreo. En esta conversión se tiene que tener en cuenta una serie de factores
psicoacústicos y prácticas de producción. Por un lado, se desea presentar todas las partes del
sonido multicanal al oyente estéreo. Por otro lado, se sabe que la capacidad del oyente para
separar las componentes de sonido disminuye entre fuentes de sonido delanteras y traseras. En
consecuencia, las fuentes de sonido traseras son generalmente atenuadas con un mixdown
estéreo para garantizar la audibilidad de las fuentes delanteras importantes. En la práctica, hay
diferentes formas de producir material estéreo a partir de audio multicanal:
•
Mix manual: En muchos casos, el ingeniero de sonido produce un downmix manual de
las fuentes de sonido multicanal usando parámetros optimizado manualmente con el
fin de preservar al máximo la libertad artística
•
Downmixing automático simple: El enfoque más básico es usar una ecuación fija (como
pueden ser las recomendadas por la ITU-R para reproducción estéreo de señales
multicanal). Aunque es un método subóptimo respecto al procedimiento manual,
puede ser en la práctica suficiente para la mayoría de aplicaciones.
•
Downmixing automático avanzado/dinámico: Con el paso del tiempo, métodos más
avanzados se han ido desarrollando teniendo en cuenta factores tales como
posicionamiento absoluto de las fuentes, la forma en que las fuentes de sonido se
mezclan en señales multicanal y relaciones de fase entrecanales. Estos algoritmos
adaptan su comportamiento al material procesado y pueden conseguir calidad similar
al procedimiento manual.
El enfoque básico del MP3 Surround no impone restricción alguna sobre qué método debe
usarse. De hecho, esta parte puede considerarse como un componente del sistema externo al
esquema general de codificación, lo que se muestra en la figura siguiente.
Considerando la tendencia general en el marco doméstico y profesional del sonido surround,
comentaremos diversas aplicaciones para la tecnología MP3 surround, haciendo hincapié en las
mejoras de los servicios existentes debidos a la compatibilidad multicanal. La característica
clave de MP3 surround en este contexto es su capacidad para distribuir audio multicanal a
bitrates comparables a los estéreo.
•
Descarga de música: Actualmente existe una gran cantidad de servicios comerciales de
descarga de música. Estos servicios podrían proporcionar servicios multicanal al mismo
tiempo que mantener el servicio estéreo. En ordenadores con configuración 5.1 los
archivos MP3 surround se decodifican en sonido surround, mientras que en
reproductores MP3 portátiles se reproducen en estéreo.
•
Servicio de streaming de música/ radio por Internet: Muchos servicios de radio por Internet
funcionan actualmente con restricciones de ancho de banda y, por ello, solo pueden
ofrecer contenidos mono o estéreo. El sonido MP3 surround podría extender el servicio
mono o estéreo a un servicio multicanal con un rango variable de bitrates. Puesto que la
eficiencia es un factor importante en esta aplicación, el aspecto de compresión MP3
surround entra en juego. Como muestra, la representación de los 5 canales a partir de
los dos canales ahorra un 60% comparado con la codificación multicanal completa.
•
Audio para juegos: Muchos ordenadores se han convertido en máquina de juegos y están
equipados con sistemas de altavoces 5.1. La sintetización del sonido 5.1 a partir de una
base de sonido compatible estéreo permite un almacenamiento eficiente de la música de
fondo multicanal.
Descargar