stringtranslate.com

Cuantización de color

En gráficos por computadora , la cuantificación de color o la cuantificación de imágenes en color es una cuantificación aplicada a espacios de color ; Es un proceso que reduce la cantidad de colores distintos utilizados en una imagen , generalmente con la intención de que la nueva imagen sea lo más similar visualmente posible a la imagen original. Desde la década de 1970 se han estudiado algoritmos informáticos para realizar la cuantificación del color en mapas de bits. La cuantización del color es fundamental para mostrar imágenes con muchos colores en dispositivos que solo pueden mostrar una cantidad limitada de colores, generalmente debido a limitaciones de memoria, y permite una compresión eficiente de ciertos tipos de imágenes.

El nombre "cuantización de color" se utiliza principalmente en la literatura de investigación de gráficos por computadora; en las aplicaciones se utilizan términos como generación de paleta optimizada , generación de paleta óptima o disminución de la profundidad del color . Algunas de ellas son engañosas, ya que las paletas generadas por algoritmos estándar no son necesariamente las mejores posibles.

Algoritmos

La mayoría de las técnicas estándar tratan la cuantificación del color como un problema de agrupación de puntos en un espacio tridimensional, donde los puntos representan los colores que se encuentran en la imagen original y los tres ejes representan los tres canales de color. Casi cualquier algoritmo de agrupamiento tridimensional se puede aplicar a la cuantificación del color y viceversa. Una vez ubicados los grupos, normalmente los puntos de cada grupo se promedian para obtener el color representativo al que se asignan todos los colores de ese grupo. Los tres canales de color suelen ser rojo, verde y azul , pero otra opción popular es el espacio de color Lab , en el que la distancia euclidiana es más consistente con la diferencia perceptiva.

El algoritmo más popular con diferencia para la cuantificación del color, inventado por Paul Heckbert en 1979, es el algoritmo de corte medio . Se utilizan muchas variaciones de este esquema. Antes de este tiempo, la mayor parte de la cuantificación de color se realizaba mediante el algoritmo de población o método de población , que esencialmente construye un histograma de rangos de igual tamaño y asigna colores a los rangos que contienen la mayor cantidad de puntos. Un método popular más moderno es la agrupación mediante octrees , concebido por primera vez por Gervautz y Purgathofer y mejorado por el investigador de Xerox PARC, Dan Bloomberg.

Si la paleta es fija, como suele ser el caso en los sistemas de cuantificación de color en tiempo real, como los utilizados en los sistemas operativos, la cuantificación de color generalmente se realiza utilizando el algoritmo de "distancia en línea recta" o "color más cercano", que simplemente toma cada colorea la imagen original y encuentra la entrada de paleta más cercana, donde la distancia está determinada por la distancia entre los dos puntos correspondientes en el espacio tridimensional. En otras palabras, si los colores son y , queremos minimizar la distancia euclidiana :

Esto descompone efectivamente el cubo de color en un diagrama de Voronoi , donde las entradas de la paleta son los puntos y una celda contiene todos los colores asignados a una única entrada de la paleta. Existen algoritmos eficientes de geometría computacional para calcular diagramas de Voronoi y determinar en qué región se encuentra un punto determinado; en la práctica, las paletas indexadas son tan pequeñas que suelen ser excesivas.

Una imagen colorida reducida a 4 colores mediante cuantificación de color espacial.

La cuantización de color se combina frecuentemente con el tramado , que puede eliminar artefactos desagradables como las bandas que aparecen al cuantizar gradientes suaves y dar la apariencia de una mayor cantidad de colores. Algunos esquemas modernos de cuantificación de color intentan combinar la selección de paleta con el tramado en una etapa, en lugar de realizarlos de forma independiente.

Se han inventado otros métodos mucho menos utilizados que utilizan enfoques completamente diferentes. El algoritmo Local K-means, concebido por Oleg Verevka en 1995, está diseñado para su uso en sistemas de ventanas donde se fija un conjunto central de "colores reservados" para su uso por parte del sistema y se pueden mostrar simultáneamente muchas imágenes con diferentes esquemas de color. Es un esquema posterior a la agrupación que hace una suposición inicial sobre la paleta y luego la refina iterativamente.

En los primeros días de la cuantificación del color, el algoritmo de agrupamiento de k-medias se consideraba inadecuado debido a sus altos requisitos computacionales y su sensibilidad a la inicialización. En 2011, M. Emre Celebi volvió a investigar el rendimiento de k-means como cuantificador de color. [1] Demostró que una implementación eficiente de k-means supera a una gran cantidad de métodos de cuantificación de color.

El algoritmo NeuQuant , lento pero de alta calidad, reduce las imágenes a 256 colores entrenando una red neuronal Kohonen "que se autoorganiza aprendiendo a hacer coincidir la distribución de colores en una imagen de entrada. Tomar la posición en el espacio RGB de cada neurona proporciona una alta -mapa de color de calidad en el que los colores adyacentes son similares." [2] Es particularmente ventajoso para imágenes con degradados.

Finalmente, uno de los métodos más nuevos es la cuantización espacial del color , concebida por Puzicha, Held, Ketterer, Buhmann y Fellner de la Universidad de Bonn , que combina el tramado con la generación de paletas y un modelo simplificado de percepción humana para producir resultados visualmente impresionantes incluso para números muy pequeños de colores. No trata la selección de paleta estrictamente como un problema de agrupamiento, en el sentido de que los colores de los píxeles cercanos en la imagen original también afectan el color de un píxel. Ver imágenes de muestra.

Historia y aplicaciones

En los primeros días de las PC, era común que los adaptadores de video admitieran solo 2, 4, 16 o (eventualmente) 256 colores debido a limitaciones de memoria de video; prefirieron dedicar la memoria de vídeo a tener más píxeles (mayor resolución) que más colores. La cuantificación del color ayudó a justificar esta compensación al hacer posible mostrar muchas imágenes con colores intensos en modos de 16 y 256 colores con una degradación visual limitada. Muchos sistemas operativos realizan automáticamente cuantización y difuminado al visualizar imágenes de colores intensos en un modo de vídeo de 256 colores, lo cual era importante cuando los dispositivos de vídeo limitados a modos de 256 colores eran dominantes. Las computadoras modernas ahora pueden mostrar millones de colores a la vez, muchos más de los que puede distinguir el ojo humano, lo que limita esta aplicación principalmente a dispositivos móviles y hardware heredado.

Hoy en día, la cuantificación de color se utiliza principalmente en imágenes GIF y PNG . GIF, durante mucho tiempo el formato de mapa de bits animado y sin pérdidas más popular en la World Wide Web , sólo admite hasta 256 colores, lo que requiere cuantificación para muchas imágenes. Algunos de los primeros navegadores web restringían las imágenes a utilizar una paleta específica conocida como colores web , lo que provocaba una grave degradación de la calidad en comparación con las paletas optimizadas. Las imágenes PNG admiten colores de 24 bits, pero a menudo se pueden hacer mucho más pequeñas en tamaño sin mucha degradación visual mediante la aplicación de cuantificación de color, ya que los archivos PNG utilizan menos bits por píxel para imágenes paletizadas.

La infinita cantidad de colores disponibles a través de la lente de una cámara es imposible de mostrar en la pantalla de una computadora; por lo tanto, convertir cualquier fotografía en una representación digital implica necesariamente cierta cuantificación. En términos prácticos, el color de 24 bits es lo suficientemente rico como para representar casi todos los colores perceptibles por los humanos con un error suficientemente pequeño como para ser visualmente idéntico (si se presenta fielmente), dentro del espacio de color disponible . [ cita necesaria ] Sin embargo, la digitalización del color, ya sea en una cámara detectora o en una pantalla, necesariamente limita el espacio de color disponible. En consecuencia, hay muchos colores que pueden ser imposibles de reproducir, independientemente de cuántos bits se utilicen para representar el color. Por ejemplo, es imposible en los espacios de color RGB típicos (comunes en los monitores de computadora) reproducir toda la gama de colores verdes que el ojo humano es capaz de percibir.

Con los pocos colores disponibles en las primeras computadoras, diferentes algoritmos de cuantificación producían imágenes de salida de aspecto muy diferente. Como resultado, se dedicó mucho tiempo a escribir algoritmos sofisticados para que fueran más realistas.

Cuantización para compresión de imágenes.

Muchos formatos de archivos de imágenes admiten colores indexados .

Una paleta de imagen completa normalmente selecciona 256 colores "representativos" para toda la imagen, donde cada píxel hace referencia a cualquiera de los colores de la paleta, como en los formatos de archivo GIF y PNG.

Una paleta de bloques normalmente selecciona 2 o 4 colores para cada bloque de 4x4 píxeles, utilizados en BTC , CCC , S2TC y S3TC .

Soporte de edición

Muchos editores de gráficos de mapas de bits contienen soporte integrado para la cuantificación de color y la realizarán automáticamente al convertir una imagen con muchos colores a un formato de imagen con menos colores. La mayoría de estas implementaciones permiten al usuario establecer exactamente la cantidad de colores deseados. Ejemplos de dicho apoyo incluyen:

La cuantización de color también se utiliza para crear efectos de posterización , aunque la posterización tiene el objetivo ligeramente diferente de minimizar la cantidad de colores utilizados dentro del mismo espacio de color y, por lo general, utiliza una paleta fija.

Algunos editores de gráficos vectoriales también utilizan la cuantificación de color, especialmente para técnicas de trama a vector que crean calcos de imágenes de mapa de bits con la ayuda de la detección de bordes .

Ver también

Referencias

  1. ^ Celebi, YO (2011). "Mejora del rendimiento de k-means para la cuantificación del color". Computación de Imagen y Visión . 29 (4): 260–271. arXiv : 1101.0395 . Código Bib : 2011arXiv1101.0395E. doi :10.1016/j.imavis.2010.10.002. S2CID  9557537.
  2. ^ "NeuQuant: cuantificación de imágenes neuronales". Archivado desde el original el 14 de junio de 2006 . Consultado el 2 de mayo de 2006 .
  3. ^ Bah, Tavmjong (23 de julio de 2007). "Inkscape» Seguimiento de mapas de bits »Escaneos múltiples" . Consultado el 23 de febrero de 2008 .

Otras lecturas