stringtranslate.com

Paleta (informática)

En infografía , una paleta es el conjunto de colores disponibles a partir de los cuales se puede realizar una imagen. En algunos sistemas, la paleta está fijada por el diseño del hardware, y en otros es dinámica, generalmente implementada a través de una tabla de búsqueda de colores (CLUT), una tabla de correspondencia en la que se asignan colores seleccionados de un rango de reproducción de color determinado del espacio de color. un índice mediante el cual se puede hacer referencia a ellos. Al hacer referencia a los colores a través de un índice, que requiere menos información de la necesaria para describir los colores reales en el espacio de color, esta técnica tiene como objetivo reducir el uso de datos, incluido el procesamiento, el ancho de banda de transferencia, el uso de RAM y el almacenamiento. Las imágenes en las que los colores se indican mediante referencias a un CLUT se denominan imágenes en color indexadas .

Descripción

A partir de 2019, el espacio de color de imagen más común en las tarjetas gráficas es el modelo de color RGB con una profundidad de color de 8 bits por píxel . Usando esta técnica, se utilizan 8 bits por píxel para describir el nivel de luminancia en cada uno de los canales RGB , por lo tanto, 24 bits describen completamente el color de cada píxel. Por lo tanto, la paleta completa del sistema para dicho hardware tiene 2 24 colores. El objetivo del uso de paletas más pequeñas a través de CLUT es reducir el número de bits por píxel reduciendo el conjunto de colores posibles que se pueden manejar a la vez (a menudo utilizando métodos adaptativos). A cada color posible se le asigna un índice, lo que permite hacer referencia a cada color utilizando menos información de la necesaria para describir completamente el color. Un ejemplo es la paleta de 256 colores comúnmente utilizada en el formato de archivo GIF , en la que se seleccionan 256 colores que se utilizarán para representar una imagen de todo el espacio de color de 24 bits, y a cada uno se le asigna un índice de 8 bits. De esta manera, si bien el sistema puede reproducir potencialmente cualquier color en el espacio de color RGB (siempre que la restricción de 256 colores lo permita), el requisito de almacenamiento por píxel se reduce de 24 a 8 bits por píxel.

paleta maestra

Una paleta de colores adaptable que se expande de 2 colores a 256 colores, lo que demuestra cómo cambia la imagen (haga clic para ver la animación).

En una aplicación que muestra muchas miniaturas de imágenes diferentes en un mosaico en la pantalla, es posible que el programa no pueda cargar todas las paletas adaptativas de cada miniatura de imagen mostrada al mismo tiempo en los registros de color del hardware. Una solución es utilizar una paleta maestra común y única o una paleta universal , que pueda usarse para mostrar con precisión razonable cualquier tipo de imagen.

Esto se hace seleccionando colores de tal manera que la paleta maestra comprenda un espacio de color RGB completo "en miniatura", limitando los posibles niveles que pueden tener los componentes rojo, verde y azul. Este tipo de disposición a veces se denomina paleta uniforme . [1] El ojo humano normal tiene sensibilidad a los tres colores primarios en diferentes grados: cuanto más al verde, menos al azul. Por lo tanto, los arreglos RGB pueden aprovechar esto asignando más niveles para el componente verde y menos para el azul.

Una paleta maestra construida de esta manera se puede llenar con hasta 8R×8G×4B = 256 colores , pero esto no deja espacio en la paleta para colores reservados, índices de color que el programa podría usar para propósitos especiales. Es más general utilizar sólo 6R×6G×6B = 216 (como en el caso de los colores Web ), 6R×8G×5B = 240 o 6R×7G×6B = 252 , lo que deja espacio para algunos colores reservados.

Luego, al cargar el mosaico de miniaturas de imágenes (u otras imágenes heterogéneas), el programa simplemente asigna cada píxel de color indexado original a su valor más aproximado en la paleta maestra (después de volcarlo en los registros de color del hardware) y escribe el resultado en el archivo. búfer de vídeo. Aquí hay una muestra de un mosaico simple de las cuatro miniaturas de imágenes usando una paleta maestra de 240 colores organizados RGB más 16 tonos intermedios adicionales de gris; Todas las imágenes se combinan sin una pérdida significativa de precisión del color:

Paleta adaptable

Cuando se utilizan técnicas de color indexado , las imágenes de la vida real se representan con mayor fidelidad al color verdadero original mediante el uso de paletas adaptativas (a veces denominadas paletas adaptativas ), en las que los colores se seleccionan o cuantifican mediante algún algoritmo directamente de la imagen original (seleccionando el colores más frecuentes). De esta manera, y con mayor tramado , la imagen en color indexada casi puede coincidir con el original.

Pero esto crea una gran dependencia entre los píxeles de la imagen y su paleta adaptativa. Suponiendo una visualización gráfica de profundidad limitada de 8 bits, es necesario cargar la paleta adaptativa de una imagen determinada en los registros del hardware de color antes de cargar la superficie de la imagen en el búfer de fotogramas . Para mostrar diferentes imágenes con diferentes paletas adaptativas, se deben cargar una por una, como en una presentación de diapositivas . Aquí hay ejemplos de cuatro imágenes en color indexadas diferentes con parches de color para mostrar sus respectivas (y en gran medida incompatibles) paletas adaptativas:

Transparencia en paletas

Una sola entrada de paleta en una imagen en color indexada se puede designar como color transparente , para realizar una superposición de vídeo simple : superponer una imagen determinada sobre un fondo de tal manera que una parte de la imagen superpuesta oscurezca el fondo y el resto no. . La superposición de títulos y créditos de películas/TV es una aplicación típica de superposición de vídeo.

En la imagen que se va a superponer (se supone un color indexado), una determinada entrada de la paleta desempeña el papel de color transparente. Generalmente el número de índice es 0, pero se puede elegir otro si la superposición se realiza mediante software . En tiempo de diseño, la entrada de la paleta de colores transparente se asigna a un color arbitrario (normalmente distintivo). En el siguiente ejemplo, un puntero de flecha típico para un dispositivo señalador está diseñado sobre un fondo naranja, por lo que aquí las áreas naranjas indican las áreas transparentes (izquierda). En tiempo de ejecución , la imagen superpuesta se coloca en cualquier lugar sobre la imagen de fondo y se combina de tal manera que si el índice de color del píxel es el color transparente, el píxel de fondo se conserva; de lo contrario, se reemplaza.

Esta técnica se utiliza para punteros, en los típicos videojuegos 2-D para personajes, viñetas y demás (los sprites ), títulos de vídeo y otras aplicaciones de mezcla de imágenes.

Algunas de las primeras computadoras, como Commodore 64 , MSX y Amiga, admiten sprites y/o superposición de vídeo en pantalla completa mediante hardware. En estos casos, el número de entrada de la paleta transparente lo define el hardware y solía ser el número 0.

Algunos formatos de archivos de imágenes en color indexados, como GIF, admiten de forma nativa la designación de una entrada de paleta determinada como transparente , seleccionable libremente entre cualquiera de las entradas de paleta utilizadas para una imagen determinada.
El formato de archivo BMP reserva espacio para los valores del canal Alfa en su tabla de colores; sin embargo, actualmente este espacio no se utiliza para guardar datos de translucidez y está establecido en cero. Por el contrario, PNG admite canales alfa en las entradas de la paleta, lo que permite la semitransparencia en las imágenes con paleta.

Cuando se trata de imágenes en color verdadero , algunos equipos de mezcla de vídeo pueden emplear el triplete RGB (0,0,0) (sin rojo, sin verde, sin azul: el tono más oscuro de negro, a veces denominado supernegro en este contexto) como color transparente. . En época de diseño, se sustituye por el llamado rosa mágico . De la misma manera, el software de autoedición típico puede asumir que el triplete RGB (255,255,255) blanco puro de las fotos e ilustraciones se excluirá para permitir que los párrafos de texto invadan el cuadro delimitador de la imagen para una disposición irregular del texto alrededor de los sujetos de la imagen.

Los programas de pintura 2D , como Microsoft Paint y Deluxe Paint , pueden emplear el color de fondo designado por el usuario como color transparente al realizar operaciones de cortar, copiar y pegar .

Aunque están relacionados (debido a que se usan para los mismos propósitos), las máscaras de bits de imagen y los canales alfa son técnicas que no implican el uso de paletas ni colores transparentes en absoluto, sino que agregan capas de datos binarios adicionales fuera de la imagen.

Paletas de software

Microsoft Windows

Las aplicaciones de Microsoft Windows administran la paleta de dispositivos de visualización en color indexados de 4 u 8 bits a través de funciones especializadas de la API Win32 . La aplicabilidad de las paletas en los modos de visualización Highcolor y Truecolor se vuelve cuestionable. Estas API se ocupan de la denominada "paleta del sistema" y de muchas "paletas lógicas".

La "paleta del sistema" es una copia en la RAM de los registros de hardware de la pantalla en color, principalmente una paleta física, y es un recurso común único y compartido del sistema. Al arrancar, se carga con la paleta predeterminada del sistema (principalmente una "paleta maestra" que funciona bastante bien con la mayoría de los programas).

Cuando una aplicación determinada intenta generar gráficos y/o imágenes coloreadas, puede establecer su propia "paleta lógica", es decir, su propia selección privada de colores (hasta 256). Se supone que cada elemento gráfico que la aplicación intenta mostrar en pantalla emplea los colores de su paleta lógica. Cada programa puede gestionar libremente una o más paletas lógicas sin más interferencias esperadas (de antemano).

Antes de que la salida se realice efectivamente, el programa debe darse cuenta de su paleta lógica: el sistema intenta hacer coincidir los colores "lógicos" con los "físicos". Si un color deseado ya está presente en la paleta del sistema, el sistema asigna internamente los índices lógicos a la paleta del sistema (porque rara vez coinciden). Si el color deseado aún no está presente, el sistema aplica un algoritmo interno para descartar el color menos utilizado en la paleta del sistema (generalmente, uno usado por otra ventana en el fondo) y lo sustituye por el nuevo color. Debido a que hay espacio limitado para colores en la paleta del sistema, el algoritmo también intenta reasignar colores similares juntos y siempre evitará la creación de colores redundantes.

El resultado final depende de cuántas aplicaciones intenten mostrar sus colores en la pantalla al mismo tiempo. La ventana de primer plano siempre es la preferida, por lo que las ventanas de fondo pueden comportarse de diferentes maneras: desde corromperse hasta volver a dibujarse rápidamente. Cuando la paleta del sistema cambia, el sistema activa un evento específico para informar a cada aplicación. Cuando se recibe, una ventana puede volver a dibujarse rápidamente utilizando una única función API de Win32. Pero esto debe hacerse explícitamente en el código del programa; de ahí el hecho de que muchos programas no logran manejar este evento y sus ventanas se corrompen en esta situación.

Una aplicación puede forzar que la paleta del sistema se cargue con colores específicos (incluso en un orden específico), "engañando" al sistema diciéndole que son entradas de color destinadas a la animación (cambios rápidos de color de los colores en la paleta física en entradas específicas ). Luego, el sistema asumirá que esas entradas de la paleta de hardware ya no están libres para su algoritmo de gestión de colores de la paleta. El resultado final depende de las habilidades del programa de forzado de color y del comportamiento de los otros programas (aunque este problema es el mismo que en el caso normal), y del propio sistema operativo.

Ver también

Notas

  1. ^ Manual del usuario de Image Alchemy de Handmade Software.
  2. ^ MSDN. "Entrada de la tabla de colores RGBQUAD"

Referencias