Saltar al contenido principal

Compresión de imágenes

¿Qué es la compresión de imágenes?

La compresión de imágenes es un proceso que reduce el tamaño de los archivos de imagen. La compresión de imágenes suele funcionar eliminando bytes de información de la imagen o utilizando un algoritmo de compresión de imágenes para volver a escribir el archivo de imagen a fin de que ocupe menos espacio de almacenamiento. Comprimir una imagen es una forma eficaz de asegurar que cargue la imagen rápidamente cuando un usuario interactúa con un sitio web o una aplicación.

Imagen original

(a) Imagen original - 195kb.

Imagen comprimida

(b) Imagen comprimida - 48,3kb.

¿Qué es la compresión de imagen con perdida?

La compresión de imagen con pérdida conserva la información más significativa de la imagen sin mantener cada píxel. Hay varios tipos de algoritmos de compresión con pérdida, que se describen con más detalle más abajo. Sin embargo, todos funcionan eliminando información del archivo de imagen para que esté compuesto por menos bytes.

Métodos de compresión de imagen con pérdida

Muchas imagenes utilizan algoritmos de compresión con pérdida. Algunos de los más comunes son:

  • JPEG: Es un formato de compresión de imágenes con pérdida desarrollado por el Joint Photographic Experts Group. Se basa en la transformada discreta del coseno (DCT) para reducir redundancias espaciales y perceptuales de la imagen. Permite alcanzar tasas de compresión de alrededor de 10:1 con una pérdida de calidad visual relativamente baja. Existen variantes como JPEG 2000 (basado en wavelets) y JPEG XR, que mejoran la relación entre compresión y calidad.

  • WebP: Es un formato de compresión de imágenes desarrollado por Google que admite tanto compresión con pérdida como sin pérdida, aunque su uso más común es con pérdida. Se basa en el códec VP8 (derivado de compresión de video) y logra reducir significativamente el tamaño de archivo respecto a JPEG, manteniendo una calidad visual similar. Además, soporta características adicionales como transparencia (canal alfa) y animaciones.

  • Formato de imagen de alta eficacia (HEIF): Es un formato de archivo contenedor diseñado para almacenar imágenes y secuencias de imágenes con una alta tasa de compresión con pérdida, manteniendo una buena calidad visual. Generalmente utiliza el códec HEVC (High Efficiency Video Coding) para la compresión, lo que permite reducir significativamente el tamaño de archivo en comparación con JPEG, sin una pérdida notable de calidad. Los archivos HEIF suelen tener la extensión .heic cuando contienen imágenes fijas.

¿Qué es la compresión de imagen sin pérdida?

Del mismo modo, la compresión de imagen sin pérdida utiliza algoritmos matemáticos para reescribir un archivo de imagen sin eliminar ninguna información. Una imagen tratada con compresión sin pérdida debe parecer básicamente idéntica al original, pero debe tener un tamaño de archivo mucho menor.

Aunque la compresión sin pérdida puede reducir el tamaño de los archivos de imagen hasta un 40%, sigue siendo menos eficaz que la compresión con pérdidas para reducir el tamaño de los archivos y optimizar las imágenes para la web.

Métodos de compresión de imagen sin pérdida

Entre los métodos de compresión sin pérdida más comunes se incluyen:

  • Gráficos de red portátitles (PNG), que a veces se utiliza en la web en lugar de JPEG o WebP.
  • Formato de intercambio de gráficos (GIF), a menudo utilizado también en la web.
  • Los archivos de mapa de bits (BMP) suelen ser demasiado grandes para uso práctico en la web.
  • Las imágenes RAW no están comprimidas en lo absoluto, Las cámaras digitales toman fotos en RAW, pero las fotos debe convertirse a otro formato y comprimirse antes de utilizarlas en un sitio web o una aplicación.

¿Cuáles son algunos algoritmos habituales de compresión de imágenes?

Los métodos de compresión con y sin pérdida utilizan diversos algoritmos de compresión de imágenes para conseguir archivos de menor tamaño. La codificación por transformación, la codificación de longitud de ejecución, la codificación aritmética, LZW, flate/deflate y la encriptación Huffman son algunos ejemplos de algoritmos de compresión de imágenes.

¿De que nos sirve saber esto para visión por computadora?

La compresión de imágenes es un aspecto crucial en el campo de la visión por computadora, ya que afecta directamente a la eficiencia y eficacia de los sistemas que procesan imágenes. Aquí hay algunas razones por las que es importante:

  1. Reducción del tamaño de los datos: La compresión de imágenes reduce el tamaño de los archivos de imagen, lo que facilita su almacenamiento y transmisión. Esto es especialmente importante en aplicaciones de visión por computadora que manejan grandes volúmenes de datos, como la vigilancia por video o el análisis de imágenes médicas.
  2. Mejora de la velocidad de procesamiento: Los algoritmos de visión por computadora a menudo requieren procesar imágenes rápidamente. La compresión de imágenes puede acelerar este proceso al reducir la cantidad de datos que deben analizarse, lo que es crucial en aplicaciones en tiempo real como la conducción autónoma o la realidad aumentada.
  3. Optimización del ancho de banda: En aplicaciones que transmiten imágenes a través de redes, como la videoconferencia o la transmisión en vivo, la compresión de imágenes ayuda a optimizar el uso del ancho de banda, permitiendo una transmisión más fluida y reduciendo la latencia.
  4. Mantenimiento de la calidad de la imagen: Aunque la compresión con pérdida puede reducir la calidad de la imagen, los algoritmos modernos están diseñados para minimizar este impacto. En aplicaciones de visión por computadora, es crucial encontrar un equilibrio entre la compresión y la calidad de la imagen para garantizar que los algoritmos puedan extraer características relevantes sin perder información crítica.
  5. Facilitación del aprendizaje automático: En el entrenamiento de modelos de aprendizaje automático para tareas de visión por computadora, la compresión de imágenes puede ayudar a reducir el tamaño del conjunto de datos, lo que acelera el proceso de entrenamiento y reduce los requisitos computacionales.

En resumen, la compresión de imágenes es esencial en la visión por computadora para mejorar la eficiencia del almacenamiento, la velocidad de procesamiento, la optimización del ancho de banda, el mantenimiento de la calidad de la imagen y la facilitación del aprendizaje automático. Estos factores son cruciales para el desarrollo y la implementación exitosa de aplicaciones de visión por computadora en diversos campos.