stringtranslate.com

composición alfa

El canal alfa de esta imagen del espectro de color cae a cero en su base, donde se mezcla con el color de fondo.

En gráficos por computadora , la composición alfa o combinación alfa es el proceso de combinar una imagen con un fondo para crear la apariencia de transparencia parcial o total . [1] A menudo resulta útil renderizar elementos de imagen (píxeles) en pasadas o capas separadas y luego combinar las imágenes 2D resultantes en una única imagen final llamada compuesta . La composición se utiliza ampliamente en el cine cuando se combinan elementos de imagen renderizados por computadora con imágenes en vivo . La combinación alfa también se utiliza en gráficos por computadora 2D para colocar elementos de primer plano rasterizados sobre un fondo.

Para combinar correctamente los elementos pictóricos de las imágenes es necesario mantener un mate asociado a cada elemento además de su color. Esta capa mate contiene la información de cobertura (la forma de la geometría que se está dibujando), lo que permite distinguir entre partes de la imagen donde se dibujó algo y partes que están vacías.

Aunque la operación más básica para combinar dos imágenes es poner una sobre la otra, son muchas las operaciones, o modos de fusión , que se utilizan.

Historia

El concepto de canal alfa fue introducido por Alvy Ray Smith y Ed Catmull a finales de los años 1970 en el Laboratorio de Gráficos por Computadora del Instituto de Tecnología de Nueva York . Bruce A. Wallace derivó el mismo operador directo basado en un modelo físico de reflectancia / transmitancia en 1981. [2] Un artículo de 1984 de Thomas Porter y Tom Duff introdujo el alfa premultiplicado utilizando un enfoque geométrico. [3]

Smith explica el uso del término alfa de la siguiente manera: "Lo llamamos así debido a la clásica fórmula de interpolación lineal que utiliza la letra griega (alfa) para controlar la cantidad de interpolación entre, en este caso, dos imágenes A y B. ". [4] Es decir, al componer la imagen A encima de la imagen B, el valor de en la fórmula se toma directamente del canal alfa de A.

Descripción

En una imagen 2D se almacena una combinación de colores para cada elemento de la imagen (píxel), a menudo una combinación de rojo, verde y azul ( RGB ). Cuando se utiliza la composición alfa, cada píxel tiene un valor numérico adicional almacenado en su canal alfa , con un valor que oscila entre 0 y 1. Un valor de 0 significa que el píxel es completamente transparente y el color del píxel inferior se mostrará a través de él. . Un valor de 1 significa que el píxel es completamente opaco.

Con la existencia de un canal alfa, es posible expresar operaciones de composición de imágenes utilizando un álgebra de composición . Por ejemplo, dadas dos imágenes A y B , la operación de composición más común es combinar las imágenes para que A aparezca en primer plano y B aparezca en segundo plano. Esto se puede expresar como A sobre B. Además de over , Porter y Duff [3] definieron los operadores de composición en , sostenido por (la frase se refiere al tapete de retención y generalmente se abrevia como afuera ), encima y xor (y los operadores inversos rover , rin , ruta y ratop ) a partir de una consideración de opciones para combinar los colores de dos píxeles cuando su cobertura está, conceptualmente, superpuesta ortogonalmente:

Como ejemplo, el operador over se puede lograr aplicando la siguiente fórmula a cada píxel: [2]

Aquí , y representan los componentes de color de los píxeles en el resultado, imagen A e imagen B respectivamente, aplicados a cada canal de color (rojo/verde/azul) individualmente, mientras que y son los valores alfa de los píxeles respectivos.

El operador over es, en efecto, la operación de pintura normal (consulte el algoritmo de Painter ). Los operadores de entrada y salida son el equivalente en composición alfa del recorte . Los dos usan sólo el canal alfa de la segunda imagen e ignoran los componentes de color. Además, plus define la mezcla de aditivos. [3]

Directo versus premultiplicado

Si se utiliza un canal alfa en una imagen, hay dos representaciones comunes disponibles: alfa directo (no asociado) y alfa premultiplicado (asociado).

Comparación

La ventaja más significativa del alfa premultiplicado es que permite una combinación, interpolación y filtrado correctos . [5] La interpolación ordinaria sin alfa premultiplicado conduce a que la información RGB se filtre desde regiones totalmente transparentes (A=0), aunque esta información RGB es idealmente invisible. Al interpolar o filtrar imágenes con bordes abruptos entre regiones transparentes y opacas, esto puede dar como resultado bordes de colores que no eran visibles en la imagen original. También se producen errores en áreas de semitransparencia porque los componentes RGB no están ponderados correctamente, dando una ponderación incorrectamente alta al color de los píxeles más transparentes (alfa inferior). [5] [6]

También se puede utilizar alfa premultiplicado para permitir que regiones de combinación alfa regular (por ejemplo, humo) y regiones con modo de combinación aditiva (por ejemplo, efectos de llama y brillo) se codifiquen dentro de la misma imagen. [7] [8] Esto está representado por un triplete RGBA que expresa emisión sin oclusión, como (0.4, 0.3, 0.2, 0.0). [5]

Otra ventaja del alfa premultiplicado es el rendimiento; en determinadas situaciones, puede reducir el número de operaciones de multiplicación (por ejemplo, si la imagen se utiliza muchas veces durante la composición posterior). [5] Las operaciones de Porter-Duff tienen una forma simple sólo en alfa premultiplicado. [3] Algunas canalizaciones de renderizado exponen una superficie API "alfa directa", pero las convierten en alfa premultiplicado para mejorar el rendimiento. [9]

Una desventaja del alfa premultiplicado es que puede reducir la precisión relativa disponible en los valores RGB cuando se utiliza una representación entera o de punto fijo para los componentes de color. Esto puede causar una pérdida notable de calidad si la información de color se aclara posteriormente o si se elimina el canal alfa. En la práctica, esto normalmente no se nota porque durante las operaciones de composición típicas, como OVER, la influencia de la información de color de baja precisión en áreas alfa bajas en la imagen de salida final (después de la composición) se reduce correspondientemente. Esta pérdida de precisión también hace que las imágenes premultiplicadas sean más fáciles de comprimir usando ciertos esquemas de compresión, ya que no registran las variaciones de color ocultas dentro de las regiones transparentes y pueden asignar menos bits para codificar áreas de bajo alfa. Las mismas “limitaciones” de profundidades de bits de cuantificación más bajas, como 8 bits por canal, también están presentes en las imágenes sin alfa y, como resultado, este argumento es problemático. [5]

Ejemplos

Suponiendo que el color del píxel se expresa mediante tuplas RGBA rectas (no premultiplicadas) , un valor de píxel de (0, 0,7, 0, 0,5) implica un píxel que tiene el 70 % de la intensidad verde máxima y el 50 % de opacidad. Si el color fuera completamente verde, su RGBA sería (0, 1, 0, 0,5). [5] Sin embargo, si este píxel usa alfa premultiplicado, todos los valores RGB (0, 0,7, 0) se multiplican, o se escalan para la oclusión, por el valor alfa 0,5, que se agrega para producir (0, 0,35, 0, 0,5). En este caso, el valor de 0,35 para el canal G en realidad indica un 70% de intensidad de emisión verde (con un 50% de oclusión). Una emisión verde pura se codificaría como (0, 0,5, 0, 0,5). Saber si un archivo utiliza alfa directo o premultiplicado es esencial para procesarlo o componerlo correctamente, ya que se requiere un cálculo diferente. [5]

La emisión sin oclusión no se puede representar en alfa directo. En este caso no está disponible ninguna conversión. [5]

Formatos de imagen que admiten canales alfa

Los formatos de imagen más populares que admiten el canal alfa son PNG y TIFF . GIF admite canales alfa, pero se considera ineficiente en cuanto al tamaño del archivo. La compatibilidad con canales alfa está presente en algunos códecs de vídeo, como Animation y Apple ProRes 4444 del formato QuickTime, o en el códec multiformato Techsmith.

El formato de archivo BMP generalmente no admite este canal; sin embargo, en diferentes formatos como 32 bits (888-8) o 16 bits (444-4) es posible guardar el canal alfa, aunque no todos los sistemas o programas son capaces de leerlo: se explota principalmente en algunos videojuegos [10] o aplicaciones particulares; [11] También se han creado programas específicos para la creación de estas BMP.

Corrección gamma

Mezcla alfa, sin tener en cuenta la corrección gamma
Mezcla alfa, teniendo
en cuenta la corrección gamma

Los valores RGB de las imágenes digitales típicas no se corresponden directamente con las intensidades de luz físicas, sino que están comprimidos mediante una función de corrección gamma :

Esta transformación utiliza mejor el número limitado de bits en la imagen codificada eligiendo la que mejor coincida con la percepción humana no lineal de la luminancia.

En consecuencia, los programas informáticos que trabajan con este tipo de imágenes deben decodificar los valores RGB en un espacio lineal (deshaciendo la compresión gamma), combinar las intensidades de luz lineal y volver a aplicar la compresión gamma al resultado: [14] [15] [ verificación fallida ]

Cuando se combina con alfa premultiplicado, la premultiplicación se realiza en un espacio lineal, antes de la compresión gamma. [16] Esto da como resultado la siguiente fórmula:

Tenga en cuenta que el canal alfa puede sufrir o no corrección gamma, incluso cuando los canales de color lo hacen.

Otros métodos de transparencia

Aunque se utilizan para fines similares, los colores transparentes y las máscaras de imagen no permiten la combinación suave de los píxeles de la imagen superpuestos con los del fondo (solo se permiten píxeles completos de la imagen o píxeles completos del fondo).

Se puede lograr un efecto similar con un canal alfa de 1 bit, como se encuentra en el modo de color alto RGBA de 16 bits del formato de archivo de imagen Truevision TGA y el modo gráfico de alto color de los adaptadores de pantalla TARGA y AT-Vista/NU-Vista relacionados. . Este modo dedica 5 bits para cada color RGB primario ( RGB de 15 bits ) más un bit restante como "canal alfa".

El tramado se puede utilizar para simular una oclusión parcial donde solo está disponible un alfa de 1 bit.

Para algunas aplicaciones, un solo canal alfa no es suficiente: una vidriera , por ejemplo, requiere un canal de transparencia separado para cada canal RGB para modelar la transparencia roja, verde y azul por separado. Se pueden agregar más canales alfa para aplicaciones de filtración de color espectral precisa.

Algunos métodos de transparencia independientes del orden reemplazan al operador over con una aproximación conmutativa. [17]

Ver también

Referencias

  1. ^ "Definición de mezcla alfa". PCMAG . Consultado el 7 de agosto de 2021 .
  2. ^ ab Wallace, Bruce A. (1981). "Fusión y transformación de imágenes rasterizadas para animación de dibujos animados" . Actas de la octava conferencia anual sobre gráficos por computadora y técnicas interactivas - SIGGRAPH '81 . vol. 15. Ciudad de Nueva York, Nueva York: ACM Press. págs. 253–262. CiteSeerX 10.1.1.141.7875 . doi : 10.1145/800224.806813 . ISBN  0-89791-045-1. S2CID  1147910.
  3. ^ ABCDE Porter, Thomas ; Duff, Tom (julio de 1984). «Composición de imágenes digitales» (PDF) . Actas de la undécima conferencia anual sobre gráficos por computadora y técnicas interactivas: SIGGRAPH '84 . vol. 18. Ciudad de Nueva York, Nueva York: ACM Press. págs. 253–259. doi : 10.1145/800031.808606. ISBN 9780897911382. S2CID  18663039. Archivado (PDF) desde el original el 29 de abril de 2011 . Consultado el 11 de marzo de 2019 .
  4. ^ Alvy Ray Smith (15 de agosto de 1995). "Alpha y la historia de la composición digital" (PDF) . alvyray.com . pag. 6. Archivado desde el original (PDF) el 25 de octubre de 2021.
  5. ^ abcdefgh "COMPOSICIÓN ALFA - Animationmet". animaciónmet.com . Archivado desde el original el 25 de septiembre de 2019 . Consultado el 25 de septiembre de 2019 .
  6. ^ "Mezcla alfa: pre o no pre". Desarrollador NVIDIA . 31 de enero de 2013. Sin embargo, algo interesante sucede cuando generamos el siguiente nivel de mapa mip...
  7. ^ "Blog de tecnología de TomF: solo pretende ser una wiki". Blog tecnológico de TomF: solo pretende ser una wiki . Archivado desde el original el 12 de diciembre de 2017 . Consultado el 8 de mayo de 2018 .
  8. ^ Trebilco, Damián. "Para cerrar convocatoria de sorteo (presentación sobre alfa premultiplicada)". GitHub . Al cambiar al modo de fusión premultiplicado para todos los efectos de partículas, se puede hacer una escena completa con una sola llamada de dibujo (asumiendo atlas/matriz 2D para las texturas)... Otro truco interesante con alfa premultiplicado es que si tienes superposiciones texturas que están en posiciones conocidas, puede preprocesarlas todas hasta obtener una sola textura.
  9. ^ "Alfa premultiplicado". Win2D para WinUI3 . Consultado el 30 de junio de 2023 . Win2D utiliza alfa directo en su superficie API, pero alfa premultiplicado para operaciones de renderizado interno.
  10. ^ "Creación de texturas". www.echos.ch . Consultado el 25 de mayo de 2023 .
  11. ^ "Formatos extendidos". 2016-03-04. Archivado desde el original el 4 de marzo de 2016 . Consultado el 25 de mayo de 2023 .
  12. ^ Lambrecht, Jordania (31 de diciembre de 2022). "Lista de formatos de vídeo/imagen compatibles con canales alfa". Estudio de diseño de panadería Pixel . Consultado el 25 de mayo de 2023 .
  13. ^ "Formato de vídeo AV1 | ¿Puedo usar... Tablas de soporte para HTML5, CSS3, etc.?". caniuse.com . Consultado el 25 de mayo de 2023 .
  14. ^ Minuto de Física (20 de marzo de 2015). "El color de la computadora está roto". YouTube . Archivado desde el original el 22 de noviembre de 2021.
  15. ^ Novak, John (21 de septiembre de 2016). "Lo que todo codificador debería saber sobre gamma".
  16. ^ "Corrección gamma frente a píxeles premultiplicados - Søren Sandmann Pedersen". ssp.impulsetrain.com .
  17. ^ McGuire, Morgan; Bavoil, Louis (2013). "Transparencia ponderada independiente del pedido combinado". Revista de técnicas de infografía . 2 (2): 122-141.

enlaces externos