Para ser más preciso que en el título, supongamos que tengo un archivo MP3 de 320 kbps. Si lo descomprimo, entonces lógicamente, todos los datos, excepto aproximadamente 320 kilobits de cada segundo de audio, deberían ser datos redundantes, capaces de ser comprimidos. Entonces, cuando codifico el archivo descomprimido en FLAC, o cualquier otro códec sin pérdida, ¿por qué es mucho más grande?
En una nota relacionada, ¿es teóricamente posible recuperar sin pérdidas la fuente de audio mp3 de un wav descomprimido? (Sé que el mp3 en sí es con pérdida. Estoy preguntando si es posible volver a codificar sin ninguna pérdida adicional ).
EDITAR: Permítanme aclarar la pregunta relacionada, y la razón detrás de esto. Supongamos que tengo un wav que se descomprimió de un archivo MP3 (y supongo que no tengo el mp3 por alguna razón). Si no quiero perder más calidad, puedo volver a codificarlo con FLAC o cualquier otro codificador sin pérdidas y obtener un archivo más grande solo para mantener la misma calidad. O bien, puedo volver a codificarlo en mp3 nuevamente y obtener el mismo tamaño que el original, pero pierdo más datos. Obviamente, ninguno de estos casos es ideal. Puedo tener el tamaño original o la calidad original, pero no ambos (me refiero a la calidad del mp3 original, no a la fuente original sin pérdidas). Mi pregunta es: ¿podemos obtener ambos? ¿Es teóricamente posible recuperar los datos comprimidos con pérdida de los datos descomprimidos con pérdida, sin perder aún más?
Si es posible, podría imaginar un algoritmo de compresión sin pérdidas que comprima el audio con FLAC. Luego también escanea el audio en busca de cualquier signo de compresión con pérdida previa y, si se detecta, lo vuelve a comprimir sin pérdidas en el archivo con pérdida original. Luego mantiene el archivo que sea más pequeño.
fuente
Respuestas:
La razón por la que el FLAC es más grande que el MP3 de los mismos datos es porque codifican de manera diferente. :) MP3 solo codifica información perceptiva, mientras que FLAC almacena cada mota de datos, solo en un formato más compacto.
Del mismo modo, MP3 solo almacena instrucciones para generar ondas que, cuando se agregan, suenan como el original. Pero la diferencia entre la señal verdadera y la señal generada (la señal de error) consiste en artefactos ruidosos aleatorios, como jaggies JPEG . Cuando almacena esto en un formato perfeccionista como FLAC, necesita almacenar todos esos jaggies, y el ruido aleatorio es más difícil de comprimir sin pérdida, por lo que aumenta el tamaño del archivo. (El ruido verdaderamente aleatorio es incompresible. Cuando comprime un archivo sin pérdidas, está eliminando patrones repetitivos redundantes y haciendo que se parezca más al ruido aleatorio).
Apuesto a que si convierte el JPEG a PNG, verá el mismo tipo de aumento de tamaño que cuando se convierte MP3 a FLAC, ya que el códec perfeccionista sin pérdidas necesita recordar cada pequeña irregularidad y artefacto que no estaba en el bmp original.
Esta analogía no es perfecta, ya que el audio se parece más a una foto que a un diagrama lineal, pero ayuda a transmitir la idea:
Tamaño BMP original: 29 kB
Tamaño PNG: 629 B
Tamaño JPEG: 1.7 kB
PNG creado a partir de JPEG: 6.2 kB
fuente
Cuando decodifica un MP3, sin importar la tasa de bits, obtiene un audio PCM estándar de 1411 kbps / 44100Hz 16 bits (o lo que sea que sea la fuente) que tiene todos los efectos notables y no notables del proceso de codificación con pérdida, este formato es necesario para la reproducción y codificación / re-codificación, cualquier archivo de cualquier códec se descomprime cuando lo reproduce en su computadora, reproductor de MP3, etc.
Al codificador FLAC no le importa si el audio que está comprimiendo proviene de un MP3 decodificado o un CD nuevo, simplemente reducirá el tamaño del archivo fuente sin ningún cambio en los datos de audio, haciendo posible una recuperación completa de la fuente, Un proceso sin pérdidas.
Un archivo FLAC hecho de un MP3 sonará exactamente como el MP3, un archivo FLAC hecho de una pista de CD sonará exactamente como el CD.
fuente
Para responder la segunda parte, si vuelve a convertir a un WAV desde el MP3, luego elige un codificador sin pérdidas, debe tener un archivo de calidad idéntica cuando haya terminado.
En cuanto a por qué el FLAC es más grande que el MP3, está tomando uno de los formatos más comprimidos, descomprimiéndolo y luego volviéndolo a comprimir en una herramienta de compresión menos eficiente (aunque con una reproducción de mayor calidad).
Es como preguntar por qué la conversión de un JPG a PNG lo hace más grande: está descomprimiendo [parcialmente] el archivo y luego lo vuelve a comprimir sin pérdidas. FLAC, como PNG, no está optimizado para el espacio , sino para la calidad .
fuente
mp3 requiere que un decodificador sea reproducible, el resultado del decodificador es una aproximación de la pista original (generalmente de un CD), por lo que el decodificador agrega datos para que sea reproducible (y esto no es información sin sentido). La aproximación resultante obtuvo la misma tasa de bits que la pista original. Sin decodificar el mp3, la información no tiene sentido, por lo que no se puede convertir a otra cosa (a menos que sea una codificación muy similar, como estéreo-mp3 a 2X mono-mp3). Y FLAC y mp3 ni siquiera son similares. Cuando decodifica un FLAC, el resultado no es una aproximación de los datos originales codificados en FLAC, sino que es exactamente el mismo.
fuente