Siendo un formato de imágenes tan difundido, exploraremos los principios de funcionamiento del archivo JPG, su grado de compresión y los parámetros clave que influyen en el proceso de compresión de imágenes.
En el fascinante mundo de la fotografía, los profesionales y entusiastas siempre están en busca de la mejor calidad de imagen y, al mismo tiempo, desean reducir el tamaño de los archivos para facilitar su almacenamiento y distribución. En este contexto, el formato de archivo JPG se ha convertido en un pilar fundamental en la industria fotográfica, ofreciendo una solución eficiente para el equilibrio entre calidad y tamaño de archivo.
Compresión de datos
Las fotos digitales en definitiva son millones de unos y ceros. Imaginemos que tenemos una secuencia de cien ceros seguidos, es decir: 0000000000…000000000 (100 ceros en total). En lugar de escribir todos esos ceros, podemos usar una forma más compacta de representarlos.
Podemos decir que vamos a escribir un «0» y luego decir cuántas veces se repite ese «0». En este caso, podemos decir que tenemos un «0» repetido cien veces. Lo representaríamos así: 0-100. De esta manera, en lugar de tener que escribir los cien ceros individualmente, solo necesitamos dos caracteres para representar la secuencia completa.
000000000000000000000000000000000000000000000000000000000000000000000000000000000…
0 * 100
Este es un ejemplo simple de cómo se puede comprimir información para que ocupe menos espacio. En este caso, hemos logrado representar cien ceros seguidos con una orden de un cero repetido cien veces, lo que nos permite ahorrar espacio y hacer más eficiente la representación de la información.
Es importante destacar que los algoritmos de compresión utilizan técnicas más sofisticadas y complejas para encontrar patrones y redundancias en los datos, lo que les permite comprimir información de manera más efectiva. Pero este ejemplo sencillo muestra cómo podemos reducir la cantidad de información necesaria para representar una secuencia larga y repetitiva.
Formas básicas de compresión
La compresión de imágenes es un proceso fundamental para reducir el tamaño de los archivos sin comprometer en gran medida la calidad visual. En esta introducción a la compresión de imágenes, exploraremos algunas formas básicas en las que se puede comprimir información, sentando las bases para comprender los conceptos más avanzados de la compresión de imágenes.
- Compresión basada en la resolución: Otra forma de comprimir información es ajustar la resolución de la imagen. Reducir la resolución disminuye el número total de píxeles en la imagen, lo que a su vez reduce el tamaño del archivo. Este enfoque puede ser útil en situaciones donde no se requiere una alta resolución, como en imágenes para uso web o visualización en dispositivos móviles. Sin embargo, es importante tener en cuenta que la reducción de la resolución también puede implicar una pérdida de detalles y una disminución en la calidad visual.
- Compresión basada en la paleta de colores: En imágenes que utilizan una paleta de colores limitada, como las imágenes indexadas, es posible reducir el tamaño del archivo comprimiendo la información de la paleta. Al asignar colores a índices y almacenar solo la información necesaria para representar esos colores, se puede lograr una compresión efectiva. Este enfoque es comúnmente utilizado en formatos como el GIF, donde se utiliza una tabla de colores para representar la imagen (esto lo permite el formato GIF y PNG8).
- Compresión sin pérdida: En la compresión sin pérdida, el objetivo es reducir el tamaño del archivo sin perder ningún dato o información original. Esta técnica se basa en la eliminación de redundancias en los datos, aprovechando patrones repetitivos y estructuras de la información. Algunos algoritmos comunes utilizados en la compresión sin pérdida son el algoritmo de Huffman y el algoritmo de Lempel-Ziv-Welch (LZW). La compresión sin pérdida es esencial en situaciones donde se requiere una reproducción exacta de los datos, como en documentos de texto o archivos ejecutables (esto lo permite el formato TIFF).
- Compresión con pérdida: En contraste con la compresión sin pérdida, la compresión con pérdida permite reducir aún más el tamaño del archivo sacrificando una cantidad determinada de información. Esta técnica se utiliza comúnmente en la compresión de imágenes y archivos de audio y video. Algoritmos como la transformada discreta del coseno (DCT) y la cuantización se utilizan para eliminar detalles menos perceptibles y reducir la cantidad de datos almacenados. Aunque se pierde cierta información durante la compresión, el objetivo es minimizar la pérdida perceptible y mantener una calidad visual aceptable siendo ideal para internet por su bajo peso final (esto lo permite el formato JPG).
El formato JPG
La compresión de imágenes en el formato JPG se basa en la eliminación selectiva de datos redundantes y detalles visuales menos perceptibles, lo que permite reducir el tamaño del archivo sin una pérdida significativa de calidad visual. A diferencia de otros formatos de archivo, como el PNG o el TIFF, el JPG utiliza una compresión con pérdida, lo que implica que la información descartada durante el proceso de compresión no se puede recuperar por completo.
El grado de compresión que se puede lograr con el archivo JPG puede variar según diferentes factores. Uno de los parámetros clave es la calidad de compresión seleccionada al guardar la imagen. En la mayoría de los programas de edición de imágenes, se suele ofrecer una opción para ajustar la calidad de compresión en una escala del 1 al 100, donde 1 representa la compresión más alta y 100 la menor. Al reducir la calidad de compresión, se elimina más información redundante y se obtiene un archivo de menor tamaño, pero a costa de una posible pérdida perceptible de detalles en la imagen.
El formato de compresión JPG modifica la estructura habitual de las imágenes de píxeles de manera que cada 8 x 8 píxeles se agrupan en un bloque que en cada paso se recalcula como conjunto. En este proceso se da, por ejemplo, una conversión del espacio cromático RGB al esquema de color YCbCr y el denominado filtro paso bajo, donde se filtran las frecuencias más altas para disminuir el tamaño de los archivos.
Compresión del color: En el formato JPG, la compresión del color se basa en el modelo de espacio de color YCbCr. Este modelo separa la información de luminancia (brillo) de la información de crominancia (color). La luminancia se considera más importante para la percepción visual humana, por lo que se conserva con mayor precisión durante el proceso de compresión. La información de crominancia se reduce más agresivamente, ya que el ojo humano es menos sensible a los cambios sutiles en el color en comparación con los cambios en el brillo.
Submuestreo cromático: Para reducir aún más el tamaño del archivo, se utiliza el submuestreo cromático en la compresión JPG. Esto implica reducir la resolución de las componentes de crominancia (Cb y Cr) en comparación con la componente de luminancia (Y). El submuestreo cromático se basa en la premisa de que el ojo humano es menos sensible a los detalles de color que a los detalles de brillo. Los valores de submuestreo cromático en JPG son 4:4:4, 4:2:2 y 4:2:0, donde el 4:4:4 conserva la mayor cantidad de información de color, mientras que el 4:2:0 tiene una menor precisión en la representación del color.
Transformada discreta del coseno (DCT): La compresión JPG utiliza la DCT para dividir la imagen en bloques y representar los datos en el dominio de la frecuencia. La DCT permite capturar los componentes de frecuencia de una imagen y concentrar la energía en las frecuencias más importantes. Al aplicar la DCT, se obtienen coeficientes de frecuencia que se pueden cuantificar y comprimir. Durante el proceso de cuantificación, se reducen los coeficientes de alta frecuencia que son menos perceptibles para el ojo humano.
Tabla de cuantización: La compresión JPG utiliza una tabla de cuantización para determinar la precisión con la que se representan los coeficientes de frecuencia obtenidos a través de la DCT. La tabla de cuantización asigna valores de paso para cada coeficiente de frecuencia en función de su importancia visual. Los coeficientes de frecuencia de alta energía y mayor importancia perceptual se cuantifican con mayor precisión, mientras que los coeficientes de frecuencia de baja energía y menor importancia perceptual se cuantifican con menor precisión. Esta cuantificación reduce la cantidad de información necesaria para representar la imagen y contribuye a la compresión efectiva.
Es importante volver a destacar que la compresión JPG es un proceso con pérdida, lo que implica que se produce cierta degradación de la calidad visual. Sin embargo, se busca minimizar la pérdida perceptible al tener en cuenta las características de la visión humana y concentrar la compresión en áreas menos perceptibles.
Artefactos o Artifacts
Sabemos entonces que durante el proceso de compresión JPG, la imagen se divide en bloques y se aplica la DCT a cada bloque La DCT representa los datos de la imagen en el dominio de la frecuencia, donde se obtienen coeficientes de frecuencia que representan diferentes componentes de la imagen. Sin embargo, debido a la compresión con pérdida, algunos coeficientes de alta frecuencia se descartan o se cuantifican con menor precisión para reducir el tamaño del archivo.
Esto puede dar lugar a la aparición de artefactos o «artifacts», como el desenfoque en áreas de alta frecuencia o transiciones abruptas. Por ejemplo, si hay un cambio rápido de colores o detalles finos en la imagen original, los coeficientes de alta frecuencia que representan esos detalles pueden verse afectados durante la compresión, lo que puede resultar en bordes irregulares o distorsiones visuales.
Es importante tener en cuenta que la aparición de artefactos también puede estar influenciada por otros factores, como la calidad de compresión seleccionada, los parámetros de cuantización utilizados y las características específicas de la imagen original. Además, la percepción de los artefactos puede variar según la sensibilidad visual de cada persona.
Eliminación de artefactos
La eliminación de artefactos en las fotos puede ser un desafío, especialmente si los artefactos son el resultado de una compresión o procesamiento previo de la imagen. Sin embargo, existen algunas técnicas y herramientas que pueden ayudar a reducir o eliminar los artefactos. Aquí hay algunas opciones que podrías considerar:
- Ajuste manual: Puedes intentar corregir los artefactos de forma manual utilizando software de edición de imágenes como Adobe Photoshop. Algunas técnicas útiles pueden incluir el uso de herramientas de clonación o parche para eliminar bloques o distorsiones, o ajustar los niveles y la nitidez de la imagen para suavizar los bordes o mejorar los detalles.
- Filtros de reducción de ruido: Los filtros de reducción de ruido pueden ayudar a suavizar los artefactos y eliminar el ruido no deseado en una imagen. Estos filtros suelen estar disponibles en programas de edición de imágenes y pueden ayudar a reducir los artefactos de bloque o las distorsiones.
- Herramientas de descompresión y reconstrucción: En algunos casos, si los artefactos son el resultado de una compresión específica, podrías intentar utilizar herramientas de descompresión y reconstrucción diseñadas para mitigar los artefactos. Estas herramientas pueden intentar recuperar detalles perdidos o suavizar los efectos de compresión no deseados.
- Aplicaciones especializadas: Existen aplicaciones y software específicamente desarrollados para eliminar artefactos en imágenes. Algunos de estos programas utilizan técnicas avanzadas de procesamiento de imágenes y algoritmos de inteligencia artificial para reducir o eliminar los artefactos de manera automática o semiautomática.
Es importante tener en cuenta que la eliminación de artefactos puede tener limitaciones dependiendo de la gravedad y la naturaleza de los mismos, así como de la calidad original de la imagen. En algunos casos, es posible que no se puedan eliminar por completo sin afectar otros aspectos de la imagen.