JPEG ha estado en uso desde alrededor de 1992, es el formato de imagen comprimido más popular en la Web, y lo ha sido durante mucho tiempo. Casi todas las fotografías en la web están en JPEG; el único formato de imagen comprimido que ha logrado la compatibilidad casi universal, no sólo con los navegadores web, también con casi todo software que muestra imágenes.
El número promedio de fotos que se muestran en un sitio Web ha crecido a lo largo de los años, al igual que el mismo tamaño de las fotos. HTML, JS, y CSS son archivos relativamente pequeños en comparación, lo que significa que las fotos pueden aumentar el tráfico de la red para una carga de página. La reducción del tamaño de estos archivos es un objetivo obvio para la optimización.
La producción de codificadores JPEG ha estado estancada en gran medida en términos de eficiencia de compresión, por lo que reemplazar JPEG con algo mejor ha sido un tema frecuente de debate. La principal desventaja de alejarse del formato JPEG es pasar por un período de varios años de escasa compatibilidad con software implementado en el mundo.
Antes de esta situación, durante una charla con un número de ingenieros en Mozilla se preguntaron si los codificadores JPEG realmente han alcanzado su potencial de compresión completa después de más de 20 años, y la conclusión a la que llegaron fue un rotundo no como respuesta, incluso dentro de las limitaciones de los requisitos de compatibilidad fuertes.
Con comentarios sobre avenidas prometedoras para la exploración en la mano, se comenzó con el proyecto ‘mozjpeg’. Lo que se esta lanzando es, la versión 1.0 (un tenedor de libjpeg-turbo con la funcionalidad ‘jpgcrush‘ añadido).
Nos dimos cuenta de que las personas han estado reduciendo los tamaños de archivos JPEG usando un script en Perl escrito por Loren Merritt llamado ‘jpgcrush‘, las referencias a las que se pueden encontrar en diversos foros alrededor de la Web. Reduce el tamaño de los archivos sin pérdidas, por lo general por un 2-6% de PNGs codificadas en JPEG por libjpeg IJG, y 10% en promedio para una muestra de 1.500 archivos JPEG de Wikimedia.
La configuración de codificación progresiva utiliza menos bits posibles; hasta donde sabemos, ningún codificador de producción tiene esta funcionalidad incorporada, por lo que se añadió como la primera característica en ‘mozjpeg’.
Lo que viene
El proximo objetivo es mejorar la codificación, haciendo uso de cuantización trellis. Si quieres ayudar o simplemente aprender más sobre los planes, los siguientes recursos están disponibles: