StarEx reproduce Ogg Vorbis

StarEx, otro que soporta Vorbis y no lo publicita

StarEx, otro que soporta Vorbis y no lo publicita

El reproductor StarEx que se ve en la foto soporta el formato Ogg Vorbis, pero no lo publicita. Ya tengo dos ejemplos (ver el anterior) de este tipo. Seguiré buscando entre los tantos aparatos genéricos que se usan por acá.

Anuncios

Qué se Pierde al Comprimir a MP3

Los formatos de audio como MP3, Vorbis, WMA y AAC descartan información de la fuente original para lograr mayor compresión, pero ¿qué es exactamente lo que se pierde?

Veamos un ejemplo de cómo oír lo que ya no está más en el archivo comprimido. Vamos a necesitar:

  1. Un archivo de audio con calidad de CD o mejor al que llamaremos fuente. Puede ser un WAV extraído de un CD o un audio en algún formato de compresión sin pérdida como FLAC obtenido de un CD. Si no tenemos, podemos bajar uno de acá: http://www.rozhlas.cz/d-dur/download_eng
  2. Herramienta de compresión con pérdida. Puede ser MP3, Ogg Vorbis, AAC o WMA. Elijamos la que más nos guste.
  3. Audacity. Es el editor de audio que nos va a permitir reconstruir el sonido descartado por la compresión.

Lo primero que tenemos que hacer es comprimir la fuente con la herramienta de  compresión. Así tendremos por ejemplo un archivo flac y un archivo ogg.

Paso 1: en Audacity vamos al menú Archivo->Abrir y seleccionamos el archivo flac fuente.

Paso 1: Abrir un archivo flac con Audacity

Paso 1: Abrir un archivo flac con Audacity

Paso 2: con la opción del menú Archivo->Importar->Audio, importamos el archivo ogg.

Paso 2: Importar un ogg con Audacity

Paso 2: Importar un ogg con Audacity

Eso nos deja con 2 archivos de sonido en el proyecto. Lo que tenemos que hacer es invertir la onda del archivo ogg. Seleccionamos toda la onda del archivo ogg con el mouse y vamos a la opción Efecto->Inversión.

Paso 3: Invertir la onda con Audacity

Paso 3: Invertir la onda con Audacity

Hecho esto, procedemos a seleccionar ambas ondas, la del flac y la del ogg que invertimos y seleccionamos la opción Pistas->Mezclar y generar.

Paso 4: Combinar ambas ondas con Audacity

Paso 4: Combinar ambas ondas con Audacity

El resultado es la resta de ambas ondas, es decir toda información que estaba en el original con calidad de CD y que no está en el archivo comprimido con pérdida.

Resultado Final

Resultado Final

Lo primero que se nota es que el resultado tiene menos volumen. Eso es por la predominancia de las altas frecuencias, que aportan poca amplitud a la onda.

Se puede jugar con diferentes niveles de compresión, tipo de música y herramientas de compresión para ver cómo varían los resultados.

Tu MP3 Chino Reproduce Ogg Vorbis

La noticia es que muchos reproductores de MP3 que dicen reproducir MP3 y WMA, casi con seguridad también reproducen Ogg Vorbis.

Daihatsu D-Z40, reproduce MP3, WMA, WAV y también Ogg Vorbis

Daihatsu D-Z40, reproduce MP3, WMA, WAV y también Ogg Vorbis

Este modelo Daihatsu D-Z40 de $199 (pesos)  lo hace, aunque en el manual jamás lo menciona y parece ser así para casi todos los reproductores basados en ciertos chips chinos y que se venden bajo diferentes marcas.

Si tu reproductor de MP3 es chino y dice que pasa MP3, WMA y WAV, además tiene FM y graba voz, cargale un par de Vorbis y empezá a disfrutar de un formato que da mejores resultados que MP3 en bitrates bajos. Por ejemplo un archivo Vorbis codificado en calidad cero (q0) que ronda los 64 kbit/s tiene mucha mejor calidad que un MP3 con similar tasa de bits.

Procesamiento en Paralelo en AMD Phenom X4

Comparé el tiempo que se tarda en traspasar 4 canciones de formato flac a formato ogg en forma secuencial y en paralelo en un procesador de cuatro núcleos como es el AMD Phenom X4 9550 en Ubuntu 8.10 de 64 bits. El resultado es asombroso.

Ejecutando en serie:

time oggenc -Q 01_threnody_in_x.flac 02_bc_blood.flac 03_goop.flac 04_soda_pop.flac)

real    0m37.265s
user    0m37.166s
sys    0m0.100s

En paralelo:

time (oggenc -Q 01_threnody_in_x.flac & oggenc -Q 02_bc_blood.flac & oggenc -Q 03_goop.flac & oggenc -Q 04_soda_pop.flac & wait)

real    0m11.697s
user    0m36.274s
sys    0m0.172s

En paralelo tarda el 31% del tiempo. Significa que casi se llega el límite teórico de reducir a un cuarto el tiempo de cálculo. Ahora resta que más aplicaciones de uno cotidiano aprovechen estas nuevos procesadores al máximo. (Notemos que hasta el comando time se confunde e informa un tiempo de usuario de 36 segundos, cuando el proceso efectivamente tardó 11 segundos).

MP3 vs. OggVorbis: calidad vs. compresión

La principal diferencia entre MP3 y OggVorbis es que OggVorbis nos da la opción de tener archivos más chicos sin perder tanta calidad (o manteniéndola).

Se sabe que para mantener cierta calidad de sonido en un MP3 no conviene bajar de 128 kbps. En la página de hydrogenaudio pertinente la mínima calidad para un reproductor portátil usando LAME 3.97 es “V 6 –vbr-new” que da un archivo de alrededor de 115 kbps.

Una calidad similar con OggVorbis se puede obtener con un parámetro “-q 1” o “-q 2”. Yo personalmente encuentro que usando “-q 1” es muy difícil encontrar defectos en el sonido producidos por la compresión.

Si miramos los minutos que podemos meter en un reproductor de 512 megas (típicamente son de 500 millones de bytes) con uno y otro codec, vemos que OggVorbis permite almacenar 7 horas 41 minutos más que MP3 en esa calidad.

El costo es un mayor consumo de batería, que dependerá de cada reproductor y será más o menos relevante según el tipo de batería que usemos.

En esta tabla tenemos el parámetro de calidad de cada codec desde la peor calidad hasta la mejor. En el primer grupo se trata de OggVorbis aoTuV beta5. El segundo grupo corresponde a LAME 3.97.

Los tiempos están basas en un reproductor de 500 megas.

Se puede ver que en el mínimo nivel transparente de cada codec hay una diferencia de 2 horas con 20 minutos a favor de OggVorbis (misma calidad en menos espacio).

Q Kb/s promedio Segundos Tiempo HH:MM Calidad (aoTuV beta5)
-2 32 125.000 34:43 ¿Qué querés a este nivel?
-1 48 83.333 23:08 Pasable
0 64 62.500 17:21 Aceptable
1 80 50.000 13:53 Buena
2 96 41.667 11:34 Muy buena
3 112 35.714 9:55 Transparente en el 90% de los casos
4 128 31.250 8:40 Transparente
5 160 25.000 6:56 Transparente
6 192 20.833 5:47 Transparente
7 224 17.857 4:57 Al pedo
8 256 15.625 4:20 Al pedo
9 320 12.500 3:28 Al pedo
10 500 8.000 2:13 Al pedo
V Kb/s promedio Segundos Tiempo HH:MM Calidad (Lame 3.97)
9 65 61.538 17:05 Muy mala
8 85 47.059 13:04 Mala
7 100 40.000 11:06 Pasable
6 115 34.783 9:39 Aceptable
5 130 30.769 8:32 Buena
4 165 24.242 6:44 Muy buena
3 175 22.857 6:20 Transparente
2 190 21.053 5:50 Transparente
1 225 17.778 4:56 Transparente
0 245 16.327 4:32 Transparente