Se gzipping imágenes vale la pena por una pequeña reducción de tamaño, pero por encima de compresión y descompresión?

38

La mayoría de los formatos de imagen ya están comprimidos. Pero, de hecho, si tomo una imagen y comprimirlo (gzipping ella), y luego comparo el comprimido a la otra sin comprimir, hay una diferencia de tamaño, a pesar de que no es una diferencia tan dramática.

La pregunta es: ¿es digno de imágenes gzipping? el tamaño de contenido se tiran por el navegador del cliente será más pequeño, pero habrá algo de sobrecarga cliente cuando de-gzipping ella.

Stephen Ostermiller
fuente
2
Si el cuello de botella de su servidor está más cerca en la red que en la CPU, seguro. De lo contrario, puede haber fruta más baja.
Konerak

Respuestas:

31

Google hace referencia a archivos gzip e imagen / binarios en Minimizar tamaño de carga útil

No use gzip para imágenes u otros archivos binarios.

Los formatos de archivo de imagen admitidos por la web, así como videos, PDF y otros formatos binarios, ya están comprimidos; el uso de gzip en ellos no proporcionará ningún beneficio adicional, y en realidad puede hacerlos más grandes. Para comprimir imágenes, vea Optimizar imágenes .

John Sampson
fuente
1
favicon.ico es una excepción que vale la pena mencionar. Las imágenes ICO no están comprimidas, por lo que gzip funciona muy bien en ellas.
un gato
8

Esto dependería de lo que es más importante, los recursos de descompresión del cliente (tiempo, potencia de procesamiento, memoria, etc.) o el ancho de banda de la red.

Ejemplo 1) Sus sistemas cliente están muy cerca del servidor (por ejemplo, en una red local) o tienen conexiones de alta velocidad, sin embargo, tienen muy poca potencia (quizás sistemas integrados con recursos limitados). NO desearía ninguna sobrecarga del lado del cliente (descomprimir) y podría permitirse fácilmente la sobrecarga de la transferencia (unos pocos bytes no hacen ninguna diferencia en el mundo real en una red local).

Ejemplo 2) Todos sus clientes son sistemas de muy alta potencia (por ejemplo, estaciones de trabajo de oficina superiores a la media), sin embargo, hay miles de ellos y su servidor solo tiene una asignación de ancho de banda limitada. En este escenario, los usuarios finales pueden pagar fácilmente los gastos generales y cada byte es importante para el servidor. gzip lejos!

Mundo real) Probablemente NO sea mejor que gzipees tus imágenes. Sin embargo, los sistemas modernos pueden permitirse el procesamiento, si tiene expectativas del mundo real, alguien usará un teléfono celular u otro sistema de baja potencia. Además, está imponiendo la restricción de que el receptor pueda descomprimir. No debería ser un problema la mayor parte del tiempo, pero ¿por qué limitar a alguien? El ahorro de tamaño será trivial y la sobrecarga de procesamiento no será para ningún sistema. Cuanto mayor sea el ahorro de tamaño, debe esperar una sobrecarga del procesador aún mayor, por lo que cada vez que ahorre en la transferencia a través de cualquier tipo de conexión normal tiene la oportunidad de volver a crearse por el tiempo necesario para procesar el gzip en algo utilizable.

Su mejor apuesta IMO es buscar una mayor optimización y formatos de imagen alternativos. No todos los archivos JPEG se crean de la misma manera. Ejemplo: guarde una imagen como JPEG en Photoshop, luego "Guardar para Web y dispositivos" como JPEG, el tamaño del archivo debe ser drásticamente diferente con la misma configuración de calidad. Además, la opción "guardar para" ofrece muchas más opciones para ajustar la calidad y el tamaño del archivo. No tenga miedo de formatos más "anticuados" como GIF también. Si su imagen se ve bien dentro de las limitaciones del formato GIF, es probable que sea mucho más pequeña y ofrezca beneficios adicionales como la transparencia ...


fuente
Gracias por tu respuesta detallada. El escenario del que estoy hablando es un escenario que involucra millones de imágenes existentes, parcialmente optimizadas, en un sitio web de comercio electrónico. Por lo tanto, está claro que la prioridad más alta es el renderizado rápido en el lado del cliente, y que las máquinas de los clientes tienen una potencia promedio y menor. Guardar en un formato diferente no es una opción [gran inversión]. La mejor solución sería en un caso como este [tantas imágenes existentes], tener una herramienta que pudiera optimizar todos los archivos jpeg en una carpeta. ¿Conoces esa herramienta?
Hay una utilidad de línea de comandos gratuita llamada jpegtran que optimiza los archivos JPEG, es posible que pueda procesar por lotes todas las imágenes en una carpeta, por lo que vale la pena investigar.
Fuente de Tim
7

No, de hecho podría empeorar las cosas. De las mejores prácticas de Yahoo para acelerar su sitio web :

Los archivos de imagen y PDF no se deben comprimir porque ya están comprimidos. Intentar descomprimirlos no solo desperdicia CPU, sino que puede aumentar el tamaño de los archivos.

nthonygreen
fuente