Depende de lo que quieras decir con “mejor”. Si te refieres al algoritmo de compresión sin pérdidas que produce la salida más pequeña independientemente de la velocidad, entonces probablemente sea uno de los algoritmos de mezcla de contexto basados en PAQ. Estos utilizan una gran cantidad de modelos de contexto independientes para predecir el siguiente píxel en una imagen a partir de píxeles vecinos, seguido de un promedio ponderado de las predicciones y la codificación aritmética. Algunos también usan transformaciones de color como (R, G, B) -> (G, GR, GB) para disminuir la correlación entre los colores. Aquí hay dos puntos de referencia actuales y uno de 2011.
SqueezeChart ™ 2013 • Compresión de imagen sin pérdida (varias imágenes en bruto de la cámara. Zpaq con un modelo especializado, paq8pxd y fp8 están basadas en PAQ).
Silesia Open Source Compression Benchmark (la radiografía es una imagen en escala de grises de 16 bits. Cmix es un programa basado en PAQ con una gran cantidad de modelos contextuales).
- ¿Cómo puede funcionar un algoritmo con un conjunto de datos pequeño pero da valores incorrectos en un conjunto de datos más grande?
- ¿Cuál es el código de búsqueda binaria usando recursividad?
- Cuando un algoritmo de árbol de decisión se enfrenta a dos atributos que producen divisiones igualmente buenas en un árbol, ¿cómo eligen uno sobre otro?
- Si un algoritmo se ejecuta en tiempo O (N), pero N no excede una constante, ¿puedo decir que el algoritmo se ejecuta en tiempo constante?
- ¿Hay alguna matemática recientemente descubierta (últimos 50 años) comprensible para estudiantes de pregrado o está todo muy avanzado?
Prueba de compresión de tipo de archivo de mapa de bits (sin pérdida) (paq8px fue mejor calificado en un solo archivo BMP grande a partir de 2011).
Sin embargo, cuando comprimimos imágenes, generalmente estamos interesados en la compresión con pérdida. Ninguno de estos compresores (algunos de los cuales son muy lentos) puede producir archivos tan pequeños como un simple codificador JPEG que descarta un poco de calidad imperceptible. JPEG a menudo puede comprimir hasta el 10% del tamaño de los mejores codificadores sin pérdida sin diferencia visual.
Pero no es posible decir cuál es el mejor compresor con pérdidas. Todos los compresores con pérdidas distorsionan la calidad hasta cierto punto. La calidad es una cosa subjetiva. Existen varias pruebas para medir la distorsión, pero ninguna es tan buena como el ojo humano. Y no siempre estamos de acuerdo en qué imágenes se ven mejor. Aun así, JPEG es un formato muy antiguo pero es rápido, ampliamente utilizado y, por lo general, lo suficientemente bueno.
Licencias: todos los programas basados en PAQ, incluidos zpaq, cmix y fp8, son GPL. Puede usar el código GPL comercialmente siempre que siga la licencia, lo que significa que si modifica y distribuye el software, debe hacer que su código fuente esté disponible de forma gratuita bajo la misma licencia. Esto no parece ser un problema con Linux, que también es GPL y se usa ampliamente comercialmente.
No sé qué algoritmo de compresión de imagen usa Facebook, pero es poco probable que lo usen porque JPEG ya está comprimido. Sin embargo, pueden cambiar el tamaño de la imagen y reducir la calidad cuando la sube. Existen varios programas que pueden comprimir JPEG aún más (sin pérdidas) hasta aproximadamente el 70% del tamaño original, como Stuffit y Winzip (ambos comerciales), PackJPG y algunas versiones de PAQ. Estos funcionan aplicando modelos de contexto mejorados a los coeficientes DCT, que normalmente están codificados por Huffman. Como de costumbre, existe una compensación entre el tamaño comprimido y la velocidad.