sRGB

sRGB (padrão Red Green Blue) é um espaço de cor RGB que a HP e a Microsoft criaram cooperativamente em 1996 para uso em monitores, impressoras e na Internet. Posteriormente, foi padronizado pelo IEC como IEC 61966-2-1: 1999. Geralmente, é o espaço de cor “padrão” para imagens que não contêm informações de espaço de cor, especialmente se os pixels das imagens estiverem armazenados em inteiros de 8 bits por canal de cor.

O sRGB usa as primárias ITU-R BT.709, o mesmo que em monitores de estúdio e HDTV, uma função de transferência (curva de gama) típica de CRTs e um ambiente de visualização projetado para corresponder às condições típicas de visualização em casa e no escritório. Essa especificação permitia que o sRGB fosse exibido diretamente em monitores CRT típicos da época, o que ajudou muito a sua aceitação.

A gama sRGB

Cromaticidade Vermelho Verde Azul Ponto branco
x 0,6400 0,3000 0,1500 0,3127
y 0,3300 0,6000 0,0600 0,3290
Y 0,2126 0,7152 0,0722 1,0000

O sRGB define as cromaticidades das primárias vermelha, verde e azul, as cores em que um dos três canais é diferente de zero e os outros dois são zero. A gama de cromaticidades que podem ser representadas em sRGB é o triângulo de cores definido por essas primárias. Como em qualquer espaço de cor RGB, para valores não negativos de R, G e B, não é possível representar cores fora desse triângulo, que está bem dentro da faixa de cores visível para um ser humano com visão tricromática normal.

Às vezes, o sRGB é evitado por profissionais de edição impressa de alta qualidade porque sua gama de cores não é grande o suficiente, especialmente nas cores azul-verde, para incluir todas as cores que podem ser reproduzidas na impressão CMYK.

A função de transferência sRGB (“gamma”)

e gama eficaz em cada ponto. Abaixo de um valor comprimido de 0,04045 ou uma intensidade linear de 0,00313, a curva é linear, então o gama é 1. Atrás da curva vermelha há uma curva preta tracejada que mostra uma lei exata de potência gama = 2,2.

O sRGB também define uma transformação não-linear entre a intensidade dessas primárias e o número real armazenado. A curva é semelhante à resposta gama de um monitor CRT. Essa conversão não-linear significa que sRGB é um uso razoavelmente eficiente dos valores em um arquivo de imagem baseado em números inteiros para exibir níveis de luz discerníveis pelos humanos.

Ao contrário da maioria dos outros espaços de cores RGB, o sRGB gama não pode ser expresso como um único valor numérico. A gama total é aproximadamente 2.2, consistindo de uma seção linear (gama 1.0) próxima ao preto, e uma seção não linear envolvendo um expoente 2.4 e um gamma (declive da saída log versus entrada log) mudando de 1.0 até aproximadamente 2.3. O propósito da seção linear é para que a curva não tenha uma inclinação infinita em zero, o que poderia causar problemas numéricos.

Especificação da transformação
A transformação direta (CIE XYZ para sRGB)
Os valores CIE XYZ devem ser escalonados para que o Y de D65 (“branco”) seja 1.0 (X, Y, Z = 0.9505, 1.0000, 1.0890). Isso geralmente é verdade, mas alguns espaços de cores usam 100 ou outros valores (como no artigo do Lab).

O primeiro passo no cálculo do sRGB do CIE XYZ é uma transformação linear, que pode ser realizada por uma multiplicação de matrizes. (Os valores numéricos abaixo correspondem aos da especificação oficial sRGB, que corrigiu pequenos erros de arredondamento na publicação original dos criadores do sRGB e assumiu o observador colorimétrico padrão de 2 ° para CIE XYZ)


É importante notar que esses valores RGB lineares não são o resultado final, pois ainda não foram ajustados para a correção gama. A seguinte fórmula transforma os valores lineares em sRGB:


onde {\ displaystyle a = 0,055} a = 0,055 e onde {\ displaystyle C} C é {\ displaystyle} R, {\ displaystyle G} G ou {\ displaystyle B} B.
Esses valores corrigidos por gama estão no intervalo de 0 a 1. Se valores no intervalo de 0 a 255 forem necessários, por exemplo, para exibição de vídeo ou gráficos de 8 bits, a técnica usual é multiplicar por 255 e arredondar para um inteiro.

Os valores geralmente são recortados no intervalo de 0 a 1. Esse recorte pode ser feito antes ou depois do cálculo de gama ou feito como parte da conversão para 8 bits.

A transformação reversa
Novamente os valores do componente sRGB  ,  ,  estão no intervalo de 0 a 1. (Um intervalo de 0 a 255 pode ser simplesmente dividido por 255,0).


onde {\ displaystyle a = 0,055} a = 0,055 e onde {\ displaystyle C} C é {\ displaystyle} R, {\ displaystyle G} G ou {\ displaystyle B} B.
Seguido por uma multiplicação de matriz dos valores lineares para obter XYZ:


Teoria da transformação

Costuma-se afirmar casualmente que a gama de decodificação para dados sRGB é 2,2, mas a transformação acima mostra um expoente de 2,4. Isso ocorre porque o efeito líquido da decomposição por partes é necessariamente uma variação de gama instantânea em cada ponto da faixa: ela vai de gama = 1 a zero a uma gama de 2,4 na intensidade máxima, com um valor mediano próximo a 2,2. A transformação foi projetada para aproximar uma gama de aproximadamente 2,2, mas com uma porção linear próxima de zero para evitar ter uma inclinação infinita em K = 0, o que pode causar problemas numéricos. A condição de continuidade da curva  , que é definido acima como uma função por partes de  , é


Resolvendo com  e o valor padrão  produz duas soluções,  ≈  ou  ≈  . O padrão IEC 61966-2-1 usa o valor arredondado  . No entanto, se impusermos a condição de que as encostas combinem bem, então devemos ter


Nós agora temos duas equações. Se tomarmos os dois desconhecidos como {\ displaystyle K_ {0}} K_ {0} e {\ displaystyle \ phi} \ phi, então podemos resolver para dar


Substituindo  e  dá  ≈  e  ≈  , com o limiar de domínio linear correspondente em  ≈  .Esses valores, arredondados para  ,  e  , às vezes descrevem a conversão sRGB. Publicações de criadores de sRGB arredondado para  e  , resultando em uma pequena descontinuidade na curva. Alguns autores adotaram esses valores apesar da descontinuidade. Para o padrão, o valor arredondado  foi mantido e o  O valor foi recalculado para tornar a curva resultante contínua, conforme descrito acima, resultando em uma descontinuidade de inclinação de 12,92 abaixo da interseção para 12,70 acima.

Ambiente de visualização

Parâmetro Valor
Nível de luminância da tela 80 cd / m 2
Ponto branco iluminante x = 0,3127, y = 0,3290 (D65)
Reflexão surround de imagem 20% (~ cinza médio)
Codificação do nível de iluminância do ambiente 64 lux
Codificando o ponto branco do ambiente x = 0,3457, y = 0,3585 (D50)
Codificação de visualização flare 1,0%
Nível de iluminação ambiente típico 200 lux
Ponto branco ambiente típico x = 0,3457, y = 0,3585 (D50)
Flare de visualização típica 5,0%

A especificação sRGB pressupõe um ambiente de codificação (criação) com iluminação fraca com temperatura ambiente correlacionada (CCT) de 5000 K. É interessante notar que isso difere do CCT do iluminante (D65). Usar o D50 para ambos teria feito com que o ponto branco da maioria dos papéis fotográficos parecesse excessivamente azul. Os outros parâmetros, como o nível de luminância, são representativos de um monitor CRT típico.

Para obter resultados ideais, a ICC recomenda o uso do ambiente de visualização de codificação (ou seja, iluminação difusa e difusa) em vez do ambiente de visualização típico menos rigoroso.

Uso
Devido à padronização do sRGB na Internet, nos computadores e nas impressoras, muitas câmeras digitais e scanners de consumo de baixa e média portes usam sRGB como o espaço de cores de trabalho padrão (ou disponível apenas). Como a gama sRGB atende ou excede a gama de uma impressora jato de tinta de baixo custo, uma imagem sRGB é geralmente considerada satisfatória para uso doméstico. No entanto, os CCDs em nível de consumidor geralmente não são calibrados, o que significa que mesmo que a imagem esteja sendo rotulada como sRGB, não se pode concluir que a imagem seja sRGB com precisão de cor.

Se o espaço de cor de uma imagem é desconhecido e é um formato de imagem de 8 a 16 bits, supondo que ele esteja no espaço de cores sRGB é uma opção segura. Isso permite que um programa identifique um espaço de cores para todas as imagens, o que pode ser muito mais fácil e confiável do que tentar rastrear o espaço de cores “desconhecido”. Um perfil ICC pode ser usado; o ICC distribui três desses perfis: dois perfis em conformidade com a versão 4 da especificação ICC, que eles recomendam, e um perfil em conformidade com a versão 2, que ainda é comumente usado.

As imagens destinadas à impressão profissional por meio de um fluxo de trabalho totalmente gerenciado por cores, por exemplo, saída de pré-impressão, às vezes usam outro espaço de cor, como o Adobe RGB (1998), que acomoda uma gama mais ampla. Essas imagens usadas na Internet podem ser convertidas em sRGB usando ferramentas de gerenciamento de cores que normalmente são incluídas em softwares que funcionam nesses outros espaços de cores.

As duas interfaces de programação dominantes para gráficos 3D, OpenGL e Direct3D, incorporaram o suporte à curva gama sRGB. O OpenGL suporta texturas com componentes de cores codificadas por gama sRGB (primeiro introduzidas com extensão EXT_texture_sRGB, adicionadas ao núcleo em OpenGL 2.1) e renderização em framebuffers codificados em gama sRGB (introduzido pela primeira vez com extensão EXT_framebuffer_sRGB, adicionado ao núcleo em OpenGL 3.0). O Direct3D suporta texturas gama sRGB e renderização em superfícies gama sRGB, começando com DirectX 9. O mapeamento mip correto e a interpolação de texturas gama sRGB têm suporte direto a hardware em unidades de texturização da maioria das GPUs modernas (por exemplo, nVidia GeForce 8 realiza conversão de textura de 8 bits para linear valores antes de interpolar esses valores), e não tem nenhuma penalidade de desempenho.