graphics - template - Antialiasing y compensación gamma
titles pack premiere pro templates (4)
Las tablas de búsqueda se usan con bastante frecuencia para trabajos como ese. Son pequeños y rápidos.
Pero ya sea que busque o alguna fórmula, si el resultado final es un archivo de imagen y el formato lo permite, es mejor guardar un perfil de color o al menos el valor gamma en el archivo para verlo más tarde, en lugar de intentar ajustar los valores RGB usted mismo .
La razón: para los canales típicos R, G, B con valores de bytes, tiene 256 valores únicos en cada canal en cada píxel. Eso es casi lo suficientemente bueno para quedar bien para el ojo humano (¡ojalá se hubiera definido el "byte" como nueve bits!) Cualquier tipo de matemática, aparte de la inversión de valores triviales, mapearía muchos a uno para algunos de esos valores. La salida no tendrá 256 valores para elegir para cada píxel para R, G o B, pero mucho menos. Eso puede provocar contornos, irregularidades, ruido de color y otras maldades.
Dejando a un lado las cuestiones de precisión, si se desea cualquier tipo de calidad decente, todo el compostaje, mezcla, mezcla, corrección de color, adición de antorcha de lente falsa, chroma-keying y lo que sea, debe hacerse en espacio RGB lineal, donde los valores de R, G y B son proporcionales a la intensidad de la luz física. La imagen matemática imita la luz física matemática. Pero donde la velocidad máxima es vital, hay formas de hacer trampa.
La luminancia de los píxeles en la pantalla de una computadora generalmente no está relacionada linealmente con los valores triples RGB digitales de un píxel. La respuesta no lineal de las CRT tempranas requirió una codificación no lineal compensadora y continuamos usando tales codificaciones hoy.
Por lo general, producimos imágenes en una pantalla de computadora y las consumimos allí también, así que todo funciona bien. Pero cuando tenemos antialias, la no linealidad, llamada gamma, significa que no podemos simplemente agregar un valor alfa de 0.5 a un 50% de píxeles cubiertos y esperar que se vea bien. Un valor alfa de 0.5 es solo 0.5 ^ 2.2 = 22% tan brillante como un alfa de 1.0 con un gamma típico de 2.2.
¿Existe alguna mejor práctica ampliamente establecida para la compensación gamma antialiasing? ¿Tiene un método de mascotas que usa día a día? ¿Alguien ha visto algún estudio de los resultados y las percepciones humanas de la calidad del resultado gráfico con diferentes técnicas?
He pensado en hacer una compensación estándar de X ^ (1 / 2.2) pero eso es bastante computacionalmente intenso. Sin embargo, quizás pueda hacerlo más rápido con una tabla de búsqueda de 256 entradas.
Jim Blinns - El libro "Dirty Pixels" delinea un cálculo de composición rápido y bueno usando tablas de búsqueda de matemáticas de 16 bits más para avanzar y retroceder con precisión al espacio de color lineal. Este tipo trabajó en las visualizaciones de la NASA, él conoce sus cosas.
Al generar imágenes, uno normalmente trabaja en un espacio de color lineal (como RGB lineal o uno de los espacios de color CIE) y luego se convierte en un espacio RGB no lineal al final. Esa conversión se puede acelerar en hardware o mediante tablas de búsqueda o incluso mediante complicadas operaciones matemáticas. (Ver las referencias de las otras respuestas)
Al realizar una mezcla alfa (por ejemplo, renderizar este icono en este fondo), este tipo de precisión a menudo se elimina a favor de la velocidad. Los resultados se calculan directamente en el espacio RGB no lineal dando vueltas con el alfa como parámetro. Esto no es "correcto", pero es lo suficientemente bueno en la mayoría de los casos. Especialmente para cosas como iconos en los escritorios.
Si intenta hacer una mezcla más correcta, la trata como un render original. Trabaja en el espacio lineal (que puede requerir una conversión inicial) y luego convierte a tu espacio de visualización no lineal al final.
Actualmente, muchos gráficos usan sRGB como espacio de color de visualización no lineal. Si recuerdo correctamente, sRGB es muy similar a un gamma de 2.2, pero hay ajustes hechos a los valores en el extremo inferior.
Estoy tratando de responder, aunque principalmente como referencia ahora, a las preguntas reales:
En primer lugar, están las recomendaciones de la UIT ( http://www.itu.int/rec/T-REC-H.272-200701-I/es ) que se pueden aplicar a la programación (pero debe conocer sus cosas) .
En la "Notación, notación, notación" de Jim Blinn, Capítulo 9, tiene un análisis de error matemático y perceptual muy detallado, aunque solo cubre la composición (muchas otras tareas gráficas también se ven afectadas).
La notación que establece también se puede usar para derivar una forma de tratar con gamma, o para verificar si una manera determinada de hacerlo es realmente correcta. Muy útil, el método de mi mascota (principalmente porque lo descubrí de forma independiente pero luego encontré su libro).