sRGB - sRGB

sRGB
RGB padrão
Cromaticidade SRGB CIE1931.svg
Cores sRGB situadas na posição calculada no diagrama de cromaticidade CIE 1931 . Luminância definida para evitar linhas brilhantes em direção às cores complementares primárias.
Nome nativo
Status Publicados
Publicado pela primeira vez 18 de outubro de 1999 ; 21 anos atras ( 18/10/1999 )
Organização IEC
Comitê TC / SC : TC 100 / TA 2
Domínio Espaço de cores , modelo de cores
Abreviação sRGB
Local na rede Internet webstore .iec .ch / publicação / 6169

sRGB é um espaço de cores RGB (vermelho, verde, azul) padrão que a HP e a Microsoft criaram cooperativamente em 1996 para usar em monitores, impressoras e na web . Posteriormente, foi padronizado pelo IEC como IEC 61966-2-1: 1999. Seu predecessor NIF RGB foi usado no FlashPix e era quase o mesmo. Geralmente, é considerado o espaço de cores para imagens que não contêm informações de espaço de cores, especialmente se os pixels das imagens forem armazenados em números inteiros de 8 bits por canal de cor .

sRGB usa os primários ITU-R BT.709 - o mesmo que em monitores de estúdio e HDTV - uma função de transferência ( gama ) típica de CRTs e um ambiente de visualização projetado para corresponder às condições de visualização típicas de casa e escritório. Essa especificação permitiu que o sRGB fosse exibido diretamente em monitores CRT típicos da época, o que ajudou muito em sua aceitação. sYCC usa a matriz BT.601 YCbCr para codificar no espaço de gama estendida, valores R'G'B 'negativos são decodificados usando a função de transferência estendida, sRGB não usa nenhuma matriz Y'CbCr.

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

sRGB define as cromaticidades dos primários vermelho, 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 acontece com qualquer espaço de cores 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íveis para um ser humano com visão tricromática normal.

Os primários vêm da HDTV ( Rec. 709 ), que por sua vez é baseada na TV em cores ( Rec. 601 ). Esses valores refletem a cor aproximada dos fósforos CRT do consumidor.

A função de transferência sRGB ("gama")

Em uma tela sRGB, cada barra sólida deve parecer tão brilhante quanto o pontilhamento listrado circundante. (Nota: deve ser visto no original, tamanho 100%)

sRGB também define uma função de transferência 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 inteiro para exibir níveis de luz discerníveis por humanos.

Ao contrário da maioria dos outros espaços de cores RGB, a gama sRGB não pode ser expressa como um único valor numérico. A gama geral é de aproximadamente 2,2, consistindo em uma seção linear (gama 1,0) perto do preto e uma seção não linear em outro lugar envolvendo um expoente 2,4 e uma gama (inclinação da saída do log versus entrada do log) mudando de 1,0 a cerca de 2,3. O objetivo da seção linear é que a curva não tenha uma inclinação infinita em zero, o que pode causar problemas numéricos.

Transformação

De sRGB para CIE XYZ

Os valores dos componentes sRBG , , estão na gama de 0 a 1 (valores na gama de 0 a 255 deve ser dividida por 255,0).

  • onde está , ou .

Esses valores de gama expandida (às vezes chamados de "valores lineares" ou "valores lineares de luz") são multiplicados por uma matriz para obter CIE XYZ:

Esta é realmente a matriz para primários BT.709, não apenas para sRGB, a segunda linha são coeficientes de matriz BT.709-2 .

De CIE XYZ para sRGB

Os valores CIE XYZ devem ser escalados de forma 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 em CIELAB , ao usar pontos brancos especificados).

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 do sRGB, que corrigiu pequenos erros de arredondamento na publicação original pelos criadores do sRGB, e assume o 2 ° observador colorimétrico padrão para CIE XYZ.)

Esses valores RGB lineares não são o resultado final; a correção de gama ainda deve ser aplicada. A fórmula a seguir transforma os valores lineares em sRGB:

  • onde está , ou .

Esses valores comprimidos em gama (às vezes chamados de "valores não lineares") são geralmente cortados na faixa de 0 a 1. Esse recorte pode ser feito antes ou depois do cálculo de gama ou como parte da conversão para 8 bits. Se os valores na faixa 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 número inteiro.

Transformação de gama estendida sYCC

A alteração 1 à IEC 61966-2-1: 1999 descreve como aplicar a correção gama a valores negativos, aplicando - f (- x ) quando x é negativo ( ef são as funções lineares sRGB↔ descritas acima), como parte de a definição YCbCr . Isso também é usado pelo scRGB .

A alteração 1 também recomenda uma matriz de alta precisão XYZ para RGB usando 7 casas decimais, para inverter com mais precisão a matriz RGB para XYZ (que permanece com a precisão mostrada acima):

.

Teoria da Transformação

eixo x: valor codificado
Eixo y esquerdo: gama local efetiva
Eixo y direito: intensidade
Gráfico das intensidades sRGB versus valores numéricos sRGB (vermelho) e a inclinação desta função no espaço log-log (azul), que é a gama efetiva em cada apontar. Abaixo de um valor compactado de 0,04045 ou uma intensidade linear de 0,00313, a curva é linear, então a gama é 1. Atrás da curva vermelha está uma curva preta tracejada mostrando uma gama exata = 2,2 lei de potência.

Às vezes, é dito que o sRGB usa uma gama de 2,2, mas as transformações acima mostram um expoente de 2,4. Isso ocorre porque o efeito líquido da decomposição por partes é necessariamente uma variação instantânea de gama em cada ponto no intervalo: ela vai de gama = 1 em zero a uma gama próxima a 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 cerca de 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.

Parametrizando as fórmulas por partes para usar para 0,04045, para 12,92 e para 0,055, a condição de continuidade no ponto de quebra é

Resolver com e o valor padrão produz duas soluções, ≈ ou . O padrão IEC 61966-2-1 usa o valor arredondado , que produz . No entanto, se impormos a condição de que as encostas também correspondam, então devemos ter

Agora temos duas equações. Se considerarmos que as duas incógnitas são e então podemos resolver para dar

,

Substituindo e dá e , com o limite de domínio linear correspondente em . Estes valores, arredondado para , e , às vezes descrever a conversão sRGB. Publicações dos criadores do sRGB arredondadas para e , portanto (isso também foi usado no FlashPix ), 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 valor foi recalculado para tornar a curva resultante contínua, conforme descrito acima, resultando em uma descontinuidade de declive de 12,92 abaixo da interseção para 12,70 acima.

Ambiente de visualização

Diagrama de cromaticidade xy CIE 1931 mostrando a gama do espaço de cores sRGB (o triângulo). O limite externo curvo é o locus espectral (ou monocromático), com comprimentos de onda mostrados em nanômetros (marcados em azul). Esta imagem é desenhada usando sRGB, então as cores fora do triângulo não podem ser coloridas com precisão e foram interpoladas. O ponto branco D65 é mostrado no centro, e o locus de Planckian é mostrado com temperaturas de cor marcadas em Kelvin . O D65 não é um corpo negro ideal de 6504 Kelvin porque é baseado na luz do dia filtrada atmosférica.
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 envolvente da imagem 20% (~ cinza médio)
Codificando o nível de iluminação ambiente 64 lux
Codificando o ponto branco do ambiente x = 0,3457, y = 0,3585 (D50)
Flare de visualização de codificação 1,0%
Nível de iluminância ambiente típico 200 lux
Ponto branco ambiente típico x = 0,3457, y = 0,3585 (D50)
Sinalizador de visão típico 5,0%

A especificação sRGB assume um ambiente de codificação (criação) mal iluminado com uma temperatura de cor correlacionada com o ambiente (CCT) de 5003 K. Isso difere do CCT do iluminante (D65). Usar D50 para ambos faria 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 os melhores resultados, o ICC recomenda o uso do ambiente de visualização codificado (ou seja, iluminação fraca e difusa) em vez do ambiente de visualização típico, menos rigoroso.

Uso

Comparação de algumas gamas de cores RGB e CMYK em um diagrama de cromaticidade xy CIE 1931

Devido à padronização do sRGB na Internet, em computadores e em impressoras, muitas câmeras e scanners digitais de consumo de baixo a médio porte usam sRGB como o espaço de cores de trabalho padrão (ou apenas disponível). No entanto, os CCDs de nível de consumidor normalmente não são calibrados, o que significa que, embora a imagem esteja sendo rotulada como sRGB, não se pode concluir que a imagem é sRGB com precisão de cores.

Se o espaço de cores de uma imagem for desconhecido e for um formato de imagem de 8 a 16 bits, assumir que está no espaço de cores sRGB é uma escolha segura. 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. A versão 2 do perfil ICC não suporta a codificação de curva paramétrica ("para"), por isso para aproximar o EOTF ele usa 1024 pontos 1DLUT, o que pode não ser óbvio ver que é por partes. Exibir perfil ICC P3 codifica a transferência sRGB usando a codificação "para" de g, a, b, c, d.

Como a gama sRGB atende ou excede a gama de uma impressora jato de tinta de baixo custo , uma imagem sRGB é frequentemente considerada satisfatória para impressão doméstica. O sRGB às vezes é evitado por profissionais de impressão de alta tecnologia porque sua gama de cores não é grande o suficiente, especialmente nas cores azul-esverdeada, para incluir todas as cores que podem ser reproduzidas na impressão CMYK . 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 cores, como 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 geralmente são incluídas com o software que funciona nesses outros espaços de cores.

As duas interfaces de programação dominantes para gráficos 3D, OpenGL e Direct3D , incorporaram suporte para a curva de gama sRGB. OpenGL oferece suporte a texturas com componentes de cores codificados por gama sRGB (introduzidos pela primeira vez com a extensão EXT_texture_sRGB, adicionada ao núcleo no OpenGL 2.1) e renderização em framebuffers codificados por gama sRGB (introduzidos pela primeira vez com a extensão EXT_framebuffer_sRGB, adicionado ao núcleo no OpenGL 3.0). O mapeamento mip e a interpolação corretos de texturas gama sRGB têm suporte direto de hardware em unidades de texturização da maioria das GPUs modernas (por exemplo, nVidia GeForce 8 realiza a conversão de textura de 8 bits para valores lineares antes de interpolar esses valores) e não tem nenhuma penalidade de desempenho.

Referências

Padrões

  • IEC 61966-2-1: 1999 é a especificação oficial do sRGB. Ele fornece ambiente de visualização, codificação e detalhes colorimétricos .
  • A emenda A1: 2003 à IEC 61966-2-1: 1999 descreve uma codificação sYCC análoga para espaços de cores YCbCr , uma codificação RGB de gama estendida e uma transformação CIELAB .
  • sRGB , International Color Consortium
  • O quarto esboço de trabalho da IEC 61966-2-1 está disponível online, mas não é o padrão completo. Ele pode ser baixado em www2.units.it .
  • Cópia de arquivo de sRGB.com , agora indisponível, contendo muitas informações sobre o design, princípios e uso de sRGB

links externos