…esto no es un subtítulo…
2019-08-15
En el espacio de color sRGB, que es el que actualmente es más común en almacenamiento digital de imágenes, cada punto es la composición de tres colores primarios (rojo, verde y azul), pero las intensidades de estos colores no van codificadas tal cual, sino que van de acuerdo a una función de transferencia no lineal. Si la intensidad de cada color primario va de 0 (oscuridad) a 1 (máxima intensidad), con cuatro cifras significativas en los cálculos (que ya es mucho), la intensidad codificada IsRGB de cada color primario está relacionada con la intensidad real Ireal de dicho color primario mediante la siguiente relación:
IsRGB = 12,92 Ireal, 0 ≤ Ireal < 0,003131;
IsRGB = 1,055 (Ireal)1⁄2,4 − 0,055, 0,003131 ≤ Ireal ≤ 1.
La parte lineal de la curva, correspondiente a intensidades bajas, evita ciertos problemas numéricos que aparecen en el entorno del 0 cuando se usa una ley potencial.
A la inversa, la intensidad real Ireal de cada color primario está relacionada con la intensidad codificada IsRGB mediante la siguiente relación:
Ireal = IsRGB ⁄ 12,92, 0 ≤ IsRGB < 0,04045;
Ireal = [(IsRGB+0,055) ⁄ 1,055]2,4, 0,04045 ≤ IsRGB ≤ 1.
Función de transferencia del espacio de color sRGB.
Esta función de transferencia tiene un origen tecnológico histórico: se parece mucho a la respuesta de los monitores de tubo de rayos catódicos. También resulta que modela razonablemente bien la percepción visual humana típica.
Es posible aproximar la función de transferencia del espacio de color sRGB mediante una única función potencial. La siguiente ley da buenos resultados:
Ireal ≅ IsRGB2,2, 0 ≤ IsRGB ≤ 1.
El exponente 2,2 suele aparecer indicado con la letra griega γ en la literatura técnica al hablar de las leyes potenciales que se usan para codificar la luminancia o las intensidades de los colores primarios.
Lo más frecuente es que los datos estén almacenados como números de 8 bits: cada valor almacenado puede ir de 0 a 255. La intensidad codificada IsRGB y el valor almacenado correspondiente I8 bits están relacionados de la siguiente manera:
IsRGB = I8 bits ⁄ 255.
Por lo tanto, la intensidad real Ireal y la intensidad almacenada en números de 8 bits I8 bits están relacionadas de la siguiente manera:
Ireal = I8 bits ⁄ (12,92×255), 0 ≤ I8 bits < 0,04045×255;
Ireal = [(I8 bits+0,055×255) ⁄ (1,055×255)]2,4, 0,04045×255 ≤ I8 bits ≤ 255.
Aunque el color de 8 bits por canal es muy común, no es lo único que existe. Si se usara color de 12 bits por canal, por ejemplo, la relación entre la intensidad real Ireal y la intensidad almacenada en números de 12 bits I12 bits, como los números de 12 bits llegan hasta 4095, sería la siguiente:
Ireal = I12 bits ⁄ (12,92×4095), 0 ≤ I12 bits < 0,04045×4095;
Ireal = [(I12 bits+0,055×4095) ⁄ (1,055×4095)]2,4, 0,04045×4095 ≤ I12 bits ≤ 4095.
En general, al usar n bits por canal, como con n bits es posible contar de 0 a 2n−1, la intensidad real Ireal está relacionada con la intensidad almacenada In bits mediante la siguiente relación:
Ireal = In bits ⁄ [12,92×(2n−1)], 0 ≤ In bits < 0,04045×(2n−1);
Ireal = {[In bits+0,055×(2n−1)] ⁄ [1,055×(2n−1)]}2,4, 0,04045×(2n−1) ≤ In bits ≤ 2n−1.
Categorías: Fotografía, Informática