Ir al contenido

JPEG: Doce mitos

No hace falta aclarar que el formato JPEG es, de lejos, el formato más popular de intercambio de imágenes, al punto que tener un archivo en este formato produce una “tranquilidad” de saber que cualquiera, en cualquier dispositivo, podrá verlo, cosa que no se produce con otros formatos. Es lógico: todos los sistemas operativos (Windows, Mac OS X, Linux, iOS, Android, etc.) traen de fábrica la capacidad de mostrar imágenes, al menos, en JPEG. Pero el hecho de utilizar un tipo de compresión con pérdida produce toda una serie de nociones, preconceptos y hasta prejuicios, algunas de los cuales son verdad, y otros no.

Mucha información se encuentra disponible en internet sobre esta cuestión, pero en general no verificamos su veracidad. Cuando el tema es, por decir así, abstracto, uno puede quedarse con eso a falta de algo mejor; pero si el tema es práctico (como este caso), y que además podemos verificar nosotros mismos, ¿por qué no hacerlo?

Bien, eso es lo que me propuse, para lo cual el único laboratorio empleado fue una computadora con Photoshop. Así que recolecté una serie de ideas (mías y de otros), sometí algunas de ellas a reflexión y las demás a experimentación. A continuación, los resultados…

Mito 1: Compresión y pérdida son la misma cosa.

Falso. Los mecanismos de compresión se dividen, justamente, en sin pérdida (lossless) y con pérdida (lossy). Si bien JPEG pertenece claramente a esta última categoría, existen otros mecanismos que no introducen pérdidas. Uno de ellos es el algoritmo LZW, que es uno de los métodos de compresión admitidos en el formato TIFF, junto con ZIP; otro es el Deflate, utilizado en el formato PNG. La razón del uso de un método con pérdida es, naturalmente, lograr compresiones mayores que al utilizar uno sin pérdida. Sin embargo, los métodos con pérdida sólo son factibles si se aplican a datos que en última instancia dependen de la (imperfecta) percepción humana; es así que se utilizan esencialmente en imágenes, audio y video. En los demás casos (compresión de archivos en general, como las utilidades WinZip y WinRAR en Windows, StuffIt en Macintosh) sólo son concebibles métodos sin pérdida, ya que se aplican a archivos donde se ignora el tipo de contenido.

Mito 2: JPEG es, esencialmente, un formato de archivo para imágenes.

Falso. JPEG es sólo un algoritmo de compresión diseñado para comprimir imágenes, y por lo tanto puede ser usado teóricamente por cualquier formato de archivo diseñado para almacenar imágenes. El nombre proviene del comité denominado Joint Photographic Experts Group (Grupo conjunto de expertos en fotografía), quien lo creó en 1992. Cuando apareció este método de compresión, lo hizo junto con un primer formato que lo aprovechaba llamado JIF (por JPEG Interchange Format). Algunos problemas de este primer formato dieron paso a una versión adaptada, que para sumar a la confusión fue llamada JFIF (por JPEG File Interchange Format). Este último formato es el que hoy se le llama vulgarmente JPEG y utiliza la conocida extensión .jpeg o su versión abreviada .jpg (debido a que los archivos de DOS y las primeras versiones de Windows sólo permitían extensiones de 3 letras), aunque lo correcto hubiera sido llamarlo JFIF y emplear la extensión .jfif o su variante .jif.

La mayor parte de los formatos de archivo pueden pensarse como un “envoltorio” que encapsula los datos propios de la imagen (es decir, los valores de color de cada píxel) junto con otros datos (dimensiones, resolución, perfiles de color, metadatos) en un único paquete; a su vez, muchos de ellos permiten que la parte de los datos de la imagen en sí puedan estar expresados de formas diversas, utilizando o no algún mecanismo de compresión (sea JPEG u otros). En particular, otros formatos que optativamente pueden emplear compresión JPEG son EPS (Encapsulated PostScript, un formato ya obsoleto) y TIFF.

Mito 3: Comprimir una imagen mediante JPEG significa perder pixeles.

Falso. Una imagen de 3000 x 2000 píxeles, comprimida mediante JPEG, tiene 3000 x 2000 píxeles; ningún píxel se perdió. Lo que se “pierde” son los valores de color exactos que estos píxeles tenían, ya que son reemplazados por otros valores que permiten una mayor compresión, y esta pérdida es irreversible (excepto que conservemos una copia de la imagen de partida, naturalmente). En el Mito 5 se pueden ver los resultados de un pequeño experimento donde precisamos de qué estamos hablando cuando decimos que los valores de ciertos pixeles fueron modificados.

Mito 4: Una imagen JPEG pierde calidad cada vez que se abre.

Falso. El sólo hecho de abrir una imagen no acumula pérdidas de calidad en cada apertura, ya que esto no modifica el archivo y por lo tanto no altera los valores de color de cada píxel; análogamente, utilizar esta imagen en un programa de diseño tampoco la modifica. Ahora bien, si guardo esa imagen (modificada o no), la situación es diferente, tal como se discute a continuación.

Mito 5: Una imagen JPEG pierde calidad cada vez que se guarda.

Verdadero, a medias. Este es un doble mito (mito de otro mito) ya que se pueden encontrar varios sitios en internet diciendo que esto es falso. Para ser precisos, partiendo de una imagen JPEG existente, abierta en el programa de edición de nuestra preferencia, podemos reconocer tres casos:

  • Guardar la imagen mediante Save (Ctrl-S en Windows, Cmd-S en Macintosh): Esta opción es posible, normalmente, cuando el programa detecta que hicimos algún cambio; sin embargo, si sólo hacemos una modificación inocua (por ejemplo, agregar una guía, o una capa, y luego eliminarla, lo que no altera ningún píxel), entonces será posible guardar la imagen mediante Save. Muchos afirman que esto no acumula pérdidas (ya que el programa debería detectar que los valores de cada píxel son los mismos, y por lo tanto no sería necesario recomprimir la imagen); sin embargo, un experimento realizado en Photoshop muestra que esto no es cierto, según se muestra más abajo.
  • Guardar la imagen mediante Save As (Ctrl-Shift-S en Windows, Cmd-Shift-S en Macintosh) sin modificar la imagen: Aún manteniendo el mismo nivel de compresión utilizado para crear la imagen inicial, el hecho de volver a guardar parece (al menos en Photoshop) que la imagen se vuelve a comprimir, y el resultado difiere de la imagen original. Por este motivo, si necesito una copia de una imagen, es preferible duplicar y renombrar el archivo antes que abrirlo y volver a guardarlo con otro nombre (mientras otros, erróneamente, afirman que esto es inocuo).
  • Guardar la imagen mediante Save o Save As luego de editar la imagen: Está claro que la imagen se modificó en cuanto a los valores de cada píxel, por lo que necesariamente la imagen se vuelve a comprimir, resultando en pérdida adicional de calidad.

Quizás sea necesario aclarar que descartamos el caso de guardar repetidamente la misma imagen desde la misma sesión de Photoshop (es decir, sin cerrar el archivo entre un Save y el otro) pues en ese caso el archivo se crea a partir del contenido de la imagen en memoria, y por lo tanto no ocurre ningún tipo de acumulación de pérdidas.

La conclusión es que JPEG no es el formato apropiado cuando la imagen debe pasar por varias sesiones de edición, por ejemplo cuando A crea una imagen que debe enviar a B para su edición, y éste a C para una edición adicional, y éste a D, etc. De todas maneras, el experimento muestra que la mayor pérdida se introduce la primera vez que la imagen se comprime; las compresiones sucesivas, comparadas con la inmediata anterior, la deterioran pero sólo marginalmente. Esto debe contrastarse con otro mito relacionado, que supone que la pérdida de calidad se acumula indefinidamente a medida que la imagen vuelve a guardarse en JPEG, lo cual, como veremos, también es falso.

En el cuadro siguiente, se muestran los resultados del experimento de tomar una imagen original sin compresión previa y guardarla en JPEG, utilizando un nivel de calidad 8, sin realizarle modificación alguna, cerrar, abrir esta última, volver a guardarla en JPEG sin modificarla, …, un total de 4 veces. Por último, se repite el procedimiento hasta totalizar 100 veces. Se comparan los porcentajes de píxeles modificados en cada generación y la diferencia promedio, tanto respecto de la original como respecto de cada una de las versiones anteriores:

Píxeles modificados por compresión JPEG en Photoshop:

Referencia Atributo 1er Save 2do Save 3er Save 4to Save 100mo Save
Original Píxeles modificados 86,43% 86,53% 86,56% 86,56% 86,56%
Diferencia promedio 3,91 4,01 4,02 4,03 4,04
1er Save Pixeles modificados 24,92% 25,38% 25,55% 25,61%
Diferencia promedio 0,49 0,52 0,54 0,55
2do Save Pixeles modificados 3,43% 3,94% 4,12%
Diferencia promedio 0,06 0,08 0,09
3er Save Pixeles modificados 1,55% 1,88%
Diferencia promedio 0,02 0,04
4to Save Pixeles modificados 0,82%
Diferencia promedio 0,02

En esta evaluación, se consideran píxeles modificados a la relación entre la cantidad de píxeles diferentes (al menos un nivel de diferencia en por lo menos uno de los canales RGB) respecto al total de píxeles de la imagen, expresados como porcentaje; la diferencia promedio es el promedio de la suma de diferencias de niveles en los tres canales RGB, ponderado por la calidad de píxeles con esa diferencia. Ambos datos se obtienen cómodamente de la paleta Histograma de Photoshop (como Percentil y Promedio, respectivamente), luego de superponer las imágenes a comparar en capas (layers) utilizando Diferencia (Difference) como el modo de fusión (blending mode). Este modo es útil para realizar una comparación numérica entre dos imágenes de las mismas dimensiones en pixeles. Al superponer exactamente una sobre otra, y estableciendo el modo de fusión de la superior en Diferencia, el resultado será negro (RGB: 0, 0, 0) en todos los pixeles cuyos valores RGB en cada imagen coincidan; valores diferentes de negro indican que esos pixeles difieren. En este punto, el histograma presentará una barra vertical importante a la izquierda y barras menores hacia la derecha. El conjunto de estas barras menores (es decir, todas menos la primera) indican el total de pixeles modificados.

Para estimar el impacto visual de estas diferencias, téngase en cuenta que, en esta escala, el umbral de percepción de cambio en la intensidad de un píxel es, grosso modo, del orden de 3 niveles; en otras palabras, son necesarios 3 niveles de diferencia en el brillo de dos pixeles para percibir que se trata de tonos diferentes.

Mito 6: Volver a guardar una imagen con un nivel de calidad superior al guardado previo, me permite recuperar la calidad de la imagen original.

Falso. La pérdida introducida es irreversible (salvo contando con una copia). Tampoco tiene sentido guardar la imagen en otro formato que no utilice compresión, o utilice compresión sin pérdida, dado que los píxeles ya fueron alterados. Basta examinar la imagen con suficiente aumento para detectar la presencia de los defectos propios de JPEG.

Mito 7: Guardar una imagen en JPEG en calidad máxima no introduce pérdida.

Falso. En calidad máxima la pérdida es mínima, pero existe. De hecho, según podemos ver en los resultados del experimento siguiente, más del 50% de los píxeles de una imagen resultan modificados al guardarla en calidad máxima. Sin embargo, esto no es para escandalizarse, ya la que el algoritmo JPEG “sabe” cuáles píxeles pueden modificarse y cuánto sin que el ojo humano logre percibirlo.

A continuación se muestran los resultados de un experimento que consiste en tomar una imagen original sin compresión de 1 MB aproximadamente, y guardarla en JPEG con diferentes niveles de calidad. También se muestra el resultado de guardar la imagen en TIFF con compresión LZW (sin pérdida). En la tabla siguiente, el desvío promedio nos da un indicio del daño que puede percibirse por la compresión (ver nota al final del mito 5).

Lo importante es que, paradójicamente, utilizar JPEG en los niveles de calidad máxima puede no ser necesariamente el mejor “negocio”. En efecto, el motivo de utilizar JPEG es obtener una reducción ventajosa en el peso final del archivo; si utilizamos calidad máxima (nivel 12), la compresión resultante es 2:1, es decir, obtenemos una reducción del 50% en el peso del archivo; pero entonces estamos cerca de TIFF, que me lo reduce un 23% sin pérdidas. Si estoy dispuesto a aceptar las pérdidas, puedo permitirme utilizar un nivel 10 y reducción de 71% (compresión 3,5:1); pero entonces luce más conveniente el nivel 8, ya que la pérdida es similar a la anterior pero con una compresión de 5:1, es decir, un 80% de reducción o casi 4 veces la reducción de TIFF.

Comparación entre niveles de calidad, pérdida y compresión en Photoshop:

Compresión Descriptiva Máximo Máximo Alto Medio Bajo Bajo Bajo TIFF LZW
Nivel de calidad 12 10 8 6 4 2 0
Diferencia respecto al original Pixeles modificados 63,13% 82,07% 86,43% 88,03% 90,68% 92,15% 93,51%
Diferencia promedio 0,86 2,52 3,91 4,77 5,87 7,43 8,60
Diferencia respecto del nivel de compresión anterior Pixeles modificados 81,67% 84,44% 84,19% 88,89% 90,91% 91,44%
Diferencia promedio 2,59 3,87 3,69 4,67 6,23 6,51
Tamaño de archivo final 516 kB 296 kB 212 kB 184 kB 156 kB 128 kB 120 kB 885 kB
Compresión 2:1 3,5:1 5:1 5,7:1 6,8:1 8,3:1 8,8:1 1,3:1

Demás está decir que suponemos que nos encontramos en una situación donde utilizar JPEG tiene sentido, esto es, el espacio de almacenamiento ES importante: envío de la imagen por internet, archivo fotográfico, etc.

Mito 8: Los mismos ajustes de calidad representan la misma compresión en todos los programas, y generarán JPEG idénticos.

Falso. Cada programa elige su manera particular de mostrar los diferentes ajustes de calidad, desde unas pocas opciones descriptivas basadas en el nivel de calidad resultante (baja, media, alta, máxima calidad) o, inversamente, basadas en el nivel de compresión (mínima, baja, media y alta compresión), hasta opciones de calidad numéricas (Photoshop, por ejemplo, tiene niveles numerados 0 a 12 junto con descripciones textuales de calidad). Esta clasificación no está estandarizada y ni siquiera es uniforme, por lo cual una misma descripción o nivel de calidad en dos programas diferentes no significa la misma pérdida y, en consecuencia, darán lugar a JPEG diferentes.

Como ejemplo, partiendo de tres imágenes originales sin compresión (tomadas de la carpeta Samples de Photoshop CS3 y convertidas previamente a TIFF), y guardándolas en JPEG utilizando por un lado Photoshop, calidad media (6 en una escala de 12), y por otro Vista Previa (Mac OS X) y calidad media (5 en una escala de 10), resultaron en cada caso dos imágenes cuyas diferencias respecto al original se muestran a continuación.

Comparación entre niveles de calidad, pérdida y compresión entre Photoshop CS3 y Vista Previa:

Imagen Atributo JPEG de Photoshop, calidad media (6 de 12) JPEG de Vista Previa, calidad media (5 de 10)
Lake
(1 MB)
Píxeles modificados 88,03% 88,17%
Diferencia promedio (niveles) 4,77 5,29
Peso de archivo 180 kB 84 kB
Compresión 5,7:1 12,6:1
Vanishing Point
(3,1 MB)
Píxeles modificados 90,40% 90,59%
Diferencia promedio (niveles) 3,57 3,73
Peso de archivo 304 kB 212 kB
Compresión 10:1 15:1
Doors
(18,1 MB)
Píxeles modificados 72,60% 70,32%
Diferencia promedio (niveles) 1,29 1,18
Peso de archivo 308 kB 308 kB
Compresión 60:1 60:1

El contenido de imagen en cada caso, así como el tamaño, es bien diferente; no obstante, estos resultados sugieren que el medio de la escala representa en Vista Previa una compresión algo más agresiva que en Photoshop, pero con aproximadamente el mismo deterioro. Sin embargo, el hecho de que a medida que ensayamos imágenes más grandes los pesos de archivo tienden a igualarse sugiere que la diferencia entre ambos no tiene que ver con la eficiencia en la compresión sino con el mayor o menor volumen de metadatos que se guardan con el archivo.

Mito 9: Las imágenes JPEG sólo pueden ser opacas (sin transparencias).

Verdadero. Muchas imágenes JPEG en páginas web parecen transparentar el fondo, pero esto es gracias al viejo truco de “completar” la imagen con el mismo fondo que el de la página donde se aplicará. Basta descargar la imagen (clic-derecho, guardar imagen como) y abrirla en un programa de edición para comprobarlo. Sin embargo, esto puede tener consecuencias indeseadas cuando consideramos cómo cada navegador administra el color de las imágenes.

Hasta hace algunos años, el único soporte “seguro” para utilizar transparencias en páginas web era el formato GIF, pero está limitado a imágenes de no más de 256 colores (incluyendo la transparencia como uno de ellos); aún así, no es posible utilizar colores semitransparentes, ya que no permite utilizar canales alfa. Esto se soluciona empleando PNG, que soporta colores RGB completos (24 bits) más un canal alfa, y además cuenta con un soporte apropiado en la mayoría de los navegadores.

Mito 10: El formato JPEG es el ideal para archivar imágenes.

En general falso. ya que en teoría uno no debería pensar que la pequeña pérdida introducida hoy no sea perjudicial para alguna aplicación futura. Hay tres circunstancias, sin embargo, que lo hacen apropiado:

  • Cuando minimizar el espacio de disco empleado es prioridad absoluta. Este es el caso cuando debemos manejar volúmenes muy grandes de imágenes en equipos de almacenamiento limitado. En un cálculo anterior vimos que guardar convenientemente una imagen en JPEG puede ocupar la cuarta parte del espacio requerido por la misma imagen en TIFF con compresión; lo mismo sucederá con el costo de almacenarla (en discos rígidos, por ejemplo, o en la nube).
  • Cuando la imagen ya llega a nosotros (o fue creada) en JPEG. Todas las cámaras digitales tienen la opción de crear imágenes en JPEG. Convertir estas imágenes a TIFF, por ejemplo, no tiene sentido pues la pérdida ya fue introducida en la cámara. La razón de utilizarlo tiene que ver, en parte, con el punto anterior; utilizando el mismo ejemplo, en una tarjeta de memoria de cierta capacidad entrarán 4 veces más imagenes en JPEG que en TIFF. Otra razón es que la cámara guarda más rápidamente la imagen en JPEG, lo que minimiza el tiempo que es necesario esperar entre disparos.
  • Cuando la imagen debe enviarse a través de un canal de transmisión limitado, o cuando el tiempo de transferencia es crítico. En esencia, nos referimos al envío de imágenes por internet, que puede adoptar varias formas, todas equivalentes: envío por e-mail, descarga desde un sitio web, presentación en una página web (toda imagen mostrada en una página debe descargarse para ello), transferencia vía FTP, etc. En todos los casos, la limitante es la velocidad del medio de transmisión; minimizar el tamaño del archivo es minimizar el tiempo de transferencia.

Mito 11: El formato JPEG es ideal para cualquier tipo de imágenes.

Falso. JPEG sólo es apropiado para imágenes fotográficas (esto es, de tono continuo) de cierto tamaño en adelante (más de 200 x 200 pixeles, para dar una idea). Si la imagen no es fotográfica (capturas de pantalla, texto escaneado o sintetizado, infografías, e ilustraciones en general) las áreas de transición abrupta entre zonas de color y el fondo (que son numerosas en este tipo de imágenes) sufrirán un deterioro más visible que otras. Si el contenido es texto, la legibilidad puede incluso llegar a estar comprometida. En estos casos, mejores opciones son GIF (si la imagen es pequeña y utiliza pocos colores, por ejemplo logos para páginas web) y PNG en los otros casos.

Veamos un ejemplo de una imagen no fotográfica: una captura de pantalla. Este tipo de imágenes es común en la web, formando parte de tutoriales de todo tipo. Tomando como ejemplo la barra de herramientas de Word 2008 en Mac OS X, cuya captura fue realizada en Mac OS X mediante el método clásico de utilizar la combinación de teclas Cmd+Shift+4 y luego seleccionar el área a capturar. (en Windows está la posibilidad de utilizar la tecla ImprPant, que copia la imagen al portapapeles, o de utilizar la aplicación Recortes). Comparemos el resultado visual de guardarlas en PNG y en JPEG (nivel de calidad 8 de 12).

word_jpeg_detail
Captura de pantalla en JPEG. Puede notarse el “ruido” que se forma alrededor de las transiciones entre los íconos y el fondo. El peso del archivo resultante es de 147 kB.
word_png_detail
La misma captura de pantalla en PNG. Notar la ausencia de ruido alrededor de los íconos y la preservación del degradé del fondo. El peso del archivo resultó ser 139 kB.

Mito 12: El método de compresión JPEG ya fue superado.

Verdadero. Para atacar los inconvenientes de este método, el mismo comité JPEG desarrolló en 2000 un mecanismo mejorado (denominado, curiosamente, JPEG 2000) que presenta varias ventajas técnicas respecto al anterior:

  • Disminución y eventual eliminación del efecto “mosaico” introducido por JPEG.
  • Sistema de codificación “progresivo”. Esto tiene consecuencias interesantes: un archivo JPEG 2000 truncado (por ejemplo debido a una transmisión interrumpida) permite aún recuperar la imagen completa, aunque a menor resolución, según cuánto del archivo se haya perdido.
  • Soporte de transparencias y canales alfa.

A pesar de las ventajas introducidas, sin embargo, su uso no está muy difundido. De hecho, pocos navegadores de internet lo soportan directamente (Safari y Opera, en particular); otros requieren un plug-in para ello. Posiblemente la razón es que JPEG 2000 sólo es claramente superior a JPEG en imágenes fotográficas grandes; en imágenes pequeñas, en cambio, JPEG puede lograr mejores resultados. Los archivos de imagen que utilizan JPEG 2000 utilizan .jp2 como extensión.

Publicado enImágenes

Se el primero en comentar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *