¿Cuál es el mejor algoritmo de compresión de imágenes y cuál es el algoritmo de compresión de Facebook?

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).

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.

Los algoritmos de compresión de imagen se pueden comparar en categorías de técnicas con pérdida y sin pérdida. El mejor algoritmo de compresión de imagen conocido para compresión con pérdida es ‘WebP’. Este algoritmo se hizo popular en mayo de 2014 cuando Facebook comenzó a usarlo. Este nuevo algoritmo de compresión de imágenes de Google proporciona un 25-35% más de compresión en comparación con JPEG. Aunque el algoritmo es de naturaleza con pérdida, la pérdida de información está mucho más allá del alcance de la percepción visual humana. Se puede obtener más información en el siguiente enlace:
Facebook ahorra los planes de datos del mundo en desarrollo con una aplicación para Android un 65% más pequeña y un 50% más eficiente

Hola,

Estoy aquí para responder al algoritmo de compresión de imágenes. No sé cuál es el mejor, pero estoy usando uno de los compresores de imágenes más rápidos que puede comprimir y optimizar 50 archivos en solo unos segundos sin problemas y que es completamente fácil de usar. Pero esto no se trata de eso. Así que eche un vistazo a algunas de sus características únicas.

  1. Como se mencionó anteriormente, comprime 50 archivos en solo unos segundos. Para explicarle el aspecto técnico de esta versión más rápida, permítame decirle que notará que el sitio de la página total consistirá en más del 80% del total de KB. Para facilitar la aceleración del tiempo de carga es mediante la compresión de la imagen, lo que ahorrará un 70-80% del tamaño y ayudará a cargar la imagen más rápido. Para que pueda imaginar cuánto tiempo y espacio puede ahorrar.
  2. La herramienta de compresión y optimización de PNG para comprimir las imágenes en PNG-8 también lo beneficia con un soporte de transparencia completo.
  3. También puede reducir el tamaño de su PPT si usa esta herramienta de compresión en línea. Aclara el color sin afectar la calidad. Se pueden reemplazar más colores con otros colores que existen en la imagen y mejorar aún más la belleza de la imagen. Sorprendentemente, la diferencia en el aspecto de la imagen no será visible para los ojos humanos. Como se mencionó anteriormente, esta compresión permite 50 archivos de una vez, por lo tanto, mantiene el tamaño de los datos bastante pequeño.
  4. No se requiere un enchufe, por lo tanto, puede evitar la carga adicional. Su verdadero enchufe automatiza el proceso, pero algo que se puede hacer en un segundo en un proceso más rápido sin ralentizar su sitio web, según nuestro acuerdo, es mi sitio web de compresión Es una mejor opción y recomendación.

Creo que esto es todo lo que necesita para una herramienta en línea eficaz para la compresión. He encontrado que esto es lo mismo y ha respondido a mis necesidades con un factor sorpresa. Espero que le haga lo mismo. Por favor comparta su experiencia y en caso Tienes algún consejo, por favor comparte conmigo.

Matt Mahoney es un experto en compresión [de imagen], y espero que su respuesta sea la mejor para la compresión con pérdida. Sin pérdidas siempre será más pequeño, si eso es lo que quieres decir con mejor.

FLIF: formato de imagen sin pérdida gratuito

es un nuevo algoritmo interesante que es a la vez un tipo de … (reclaman software libre, y no tienen patentes, por lo que está bien para comercial, pero está bajo la GPL, pero el software comercial / propietario puede usarlo si es inteligente, creo). No tiene pérdidas, y probablemente no supera los algoritmos lentos (supongo que el oscuro que señala Mahoney), pero supera a la mayoría. Sin embargo, también es con pérdida, de manera que puede tomar el prefijo de cualquier longitud del archivo y obtener una imagen, por lo que si parece que puede vencer a cualquier algoritmo en tamaño. Supongo que los algoritmos destinados a ser solo con pérdida pueden obtener una mejor calidad de imagen para un tamaño determinado, pero no cuente con ello. Parece que los comunes como JPEG y WebP pueden no serlo.

Sobre el de Facebook, parece ser solo JPEG, no un “algoritmo” especial, solo parámetros para uno …:

¿Cuál es el algoritmo de compresión utilizado por Facebook?

Evitar la compresión de imágenes de Facebook (artefactos JPEG)

Dices “imagen”, el video es solo una serie de imágenes, e incluso en un punto el “movimiento JPEG” MJPEG, era común, pero no creo más, ya que si bien JPEG es simétrico en velocidad de compresión y luego esta variante de video, y la mayoría de los “hechos para video” no lo son, ya no importa. Luego, la desaceleración adicional en formatos de video comunes, en la fase de compresión, ya no importa, ya que la velocidad de las computadoras es lo suficientemente rápida ahora (en tiempo real), incluso con partes (¿o todas?) De estos algoritmos ahora en hardware.

Al menos MPEG para video, el que conozco, es similar a JPEG, pero tiene que descubrir vectores de movimientos (la parte lenta), además de la “parte JPEG”. Supongo que todos los algoritmos más nuevos hacen algo similar. En la reproducción, descomprimir con estos vectores es trivial (al menos esa parte).

Existe una compensación entre la compresión y la velocidad, y la velocidad, especialmente para la descompresión de video, pero también para las imágenes, puede ser más importante que la compresión sola. Este concepto teórico puede no aplicarse (¿o sí?):

Velocidad previa

Primero, parece confundir “código abierto” con “libre de patentes”. Dos cosas completamente diferentes y algo a lo que debes prestar atención. Como otro mencionado “mejor” es relativo. En cada algoritmo hay compensaciones en términos de relación de compresión, velocidad (complejidad), costo e incluso “base de uso”.

JPEG es, por supuesto, el más utilizado y probablemente sin patentes en este momento. Creo que Facebook usa JPEG.
JPEG2000 es mejor que JPEG, pero difícilmente puede encontrarlo usado fuera de la industria del cine digital.
Tanto H.264 como H.265 tienen muy buenos modos Intra. H.265 tiene incluso un modo de imagen fija. Sin embargo, de nuevo, apenas se usan en la práctica. Por razones más prácticas, JPEG es el método de compresión más popular.

En una palabra, BPG es el mejor formato de FAR. Por pérdidas.

Ver por ti mismo. Comparación de imágenes BPG

Creo que Matt Mahoney lo ha respondido bien.
Aún así, si está buscando el algoritmo más reciente, le recomendaré que busque los últimos artículos en Google Scholar con respecto a la compresión de imágenes.

More Interesting

Cómo equilibrar el tiempo entre el desarrollo web de aprendizaje (JavaScript) y las estructuras de datos de algoritmos

¿Cuál es la diferencia entre un algoritmo de autoaprendizaje y un algoritmo de IA?

¿Cuál es la última actualización del algoritmo SEO de Google en 2017?

Cómo analizar la complejidad temporal del algoritmo MST de prims

¿Por qué deberíamos conocer más de un algoritmo de clasificación en Python (burbuja, inserción, selección) si todos están haciendo el mismo trabajo?

¿Las IA modernas sufren los mismos problemas que los algoritmos, o tienen un conjunto diferente de problemas?

Cómo encontrar el segundo número más pequeño de 3 entradas sin usar la matriz

¿Cómo se debe aprender la codificación, haciendo algoritmos, desde el nivel básico, dado que no tiene experiencia en codificación? (especialmente desde el punto de vista de la colocación y también dado el hecho de que me queda un año para que comience mi temporada de colocación).

¿Podemos, y qué significa, 'crear algoritmos sin codificación'?

¿De dónde viene el nombre perceptrón?

¿Dónde puedo encontrar un algoritmo de relevancia marginal máxima en Python para la eliminación de redundancia en dos documentos?

¿Cuál es el algoritmo o algún factor relevante de la clasificación de Google Play?

¿Existe un libro que enseñe algoritmos, estructuras de datos y otros conceptos básicos de informática de una manera divertida?

¿Cuál es la diferencia entre hashing y encriptación?

¿Cómo funciona la detección de vandalismo de Wikipedia?