Primero, recapitulemos lo que significa la compresión sin pérdida . Significa, simplemente, que cuando comprimes los datos y luego los descomprimes, la salida de la descompresión coincide exactamente con tu entrada.
Eso parece bastante sencillo, pero aún así es un poco sorprendente: puede tomar datos y hacerlos más pequeños sin perder nada. Más tarde, puede restaurar con precisión lo que tenía antes de comprimir.
La razón por la que esto funciona es que la mayoría de las cosas que desea comprimir tienen redundancias, y por eso el compresor se aprovecha de eso. Un compresor sin pérdida ideal (si existiera uno) reduciría los datos a un tamaño igual al contenido de información real de esos datos. Algunos datos no se comprimirían en absoluto, claro. Con este hipotético compresor ideal, algunas entradas pueden aumentar en 1 bit, un bit que indica que el compresor ideal “comprimió” el archivo.
Entonces, ¿qué pasa con un compresor con pérdida? Los compresores con pérdidas no tienen las mismas restricciones que un compresor sin pérdidas. Si registra los datos de su entrada, la comprime y luego la descomprime, la salida no es idéntica a la entrada. Esto permite al compresor potencialmente comprimir los datos mucho más que incluso el compresor sin pérdida ideal que se supone anteriormente. Incluso puede hacer que todas las entradas sean más pequeñas, dependiendo de su diseño.
- ¿Cuál es la mejor participación de TI en el mercado de valores indio?
- ¿Qué dominio en la industria financiera es el más estable para los profesionales técnicos?
- ¿Cómo es recorrer una trayectoria profesional de desarrollador a líder de desarrollador a gerente de proyecto a gerente de tecnología?
- ¿Debo cambiar al sector de TI ya que no encuentro un futuro seguro en biotecnología?
- ¿Hay varios trabajos de TI en Estonia para alguien que se graduó con una licenciatura? ¿Es bueno el salario inicial?
Los compresores con pérdida útiles funcionan al excluir información que es menos importante, o al menos que el algoritmo cree que es menos importante. La idea es que si está dispuesto a perder un poco de fidelidad en los lugares que las personas no notarán, puede obtener un rendimiento mucho menor.
JPEG, por ejemplo, tiene pérdida. Funciona transformando partes de la imagen en el dominio de la frecuencia, y luego reduciendo la precisión de la representación del dominio de la frecuencia. Funciona muy bien en fotografías de escenas naturales. ¿Por qué? Porque nuestros ojos se preocupan por los bordes y las formas de los gradientes, pero no por los valores exactos de los píxeles. Cuando se transforma en el dominio de la frecuencia, la mayor parte de la información interesante en la imagen se compacta en unos pocos intervalos de frecuencia que capturan la esencia de esos gradientes. Un pequeño error en esos términos generalmente no produce artefactos notables. (Ahora, a medida que aumenta la relación de compresión, eso se vuelve cada vez menos cierto).
Dicho esto, si intenta usar JPEG en, por ejemplo, una imagen llena de texto y gráficos de líneas, el resultado es bastante horrible. Esto se debe a que la entrada no es una buena combinación para las suposiciones del algoritmo.
MP3 es un formato de audio con pérdida. Funciona utilizando un modelo psicoacústico . Ese modelo predice qué sonidos serán enmascarados por otros sonidos. Por ejemplo, es poco probable que escuche ciertos tonos suaves en milisegundos después de un ruido fuerte. El ruido fuerte enmascara el tono suave. El modelo (un algoritmo de software) le dice al compresor que gaste menos bits en los sonidos que cree que serán enmascarados, en comparación con los sonidos que cree que no serán enmascarados.
En ambos casos, es posible que note algo: ambos se basan en modelos de percepción para determinar qué conservar y qué se puede dejar de lado. Eso se basa en el hecho de que los dos formatos que describí son códecs de medios. Y como la percepción humana tiene tantos límites, ahí es donde encontrará la mayoría de los compresores con pérdida. Por lo tanto, la estrategia general: averiguar qué es lo que los humanos no van a perder, y luego solo gastar sus partes en las partes que a los humanos les importarán.
Sin embargo, puedes encontrar la compresión con pérdida en otro lugar. Por ejemplo, si observa, digamos, /var/log/messages
(o su equivalente) en un sistema Linux, a veces verá un mensaje de registro en el sentido de que “el último mensaje se repitió 12 veces”. Esa es la compresión con pérdida allí mismo. ¿Qué perdió exactamente? Precisamente las marcas de tiempo, por una cosa. Una vez más, esa información puede ser descartada porque a los humanos probablemente no les importará. En este caso, sin embargo, no se debe a ningún límite en la percepción humana. Esa información en particular simplemente no es útil el 99.99% del tiempo.