Por que há uma diferença entre a gama de cores CIE XYZ e CIE RGB?

Aug 16 2020

Mais uma questão sobre o espaço de cores ...

Em minha pesquisa sobre o sistema CIE XYZ, descobri que ele é baseado nos experimentos de correspondência de cores RGB da CIE e que, como o sistema RGB precisava de valores negativos ocasionais, o XYZ foi desenvolvido para ter um sistema totalmente não negativo. A partir disso, deduzo que as funções de correspondência de cores x (), y () e z () são apenas transformações das funções r (), g () e b () originais, usando exatamente os mesmos dados. Também descobri online que os sistemas XYZ e RGB são completamente intercambiáveis, e o XYZ é preferido apenas pela falta de componentes negativos.

Se isso estiver incorreto, corrija-me!

No entanto, se eles são intercambiáveis ​​e baseados nos mesmos dados, por que a comparação dos dois espaços pela Wikipedia mostra uma diferença marcante? A seção curvilínea ausente fora desse triângulo interno é apenas as áreas onde o sistema RGB CIE teria que ser negativo?

https://en.wikipedia.org/wiki/CIE_1931_color_space#CIE_RGB_color_space

Respostas

1 NathanReed Aug 29 2020 at 06:36

Correto, a seção curvilínea ausente na área verde-ciano-azul representa onde o componente vermelho teria que ser negativo para expressar essas cores em coordenadas CIE RGB.

RGB e XYZ são, em um nível, apenas sistemas de coordenadas diferentes cobrindo o mesmo espaço de cor - o espaço de todas as cores visíveis à visão humana típica. Em um sentido matemático, quando usado como coordenadas, não há nada de errado com valores RGB negativos (desde que a luminância geral da cor permaneça positiva). Mas apresenta um problema para armazenar ou transmitir tais valores, pois formatos de imagem convencionais e protocolos de sinal de exibição como HDMI, etc, permitem apenas valores positivos.

Em outro nível, vários espaços de cores RGB são usados ​​porque representam mais ou menos diretamente os subpixels vermelhos, verdes e azuis reais na tela. Esses não podem emitir luz negativa, é claro, e assim o triângulo RGB no espaço de cores representa a gama de cores que pode ser produzida pela tela.

Infelizmente, como o locus espectral é curvo, não há como três primários cobrirem tudo. Todos os espaços RGB inevitavelmente eliminam uma grande parte das cores verdes / azuis altamente saturadas.

O espaço XYZ meio que tem o problema oposto. Todas as cores visíveis podem ser representadas usando apenas valores positivos em XYZ, mas as cores primárias XYZ em si não são cores fisicamente possíveis - elas estão bem fora da gama visível. Portanto, há um grande pedaço de espaço XYZ que não é válido como cor. E não é trivial determinar exatamente quais valores são ou não válidos, pois você tem que testar se eles estão dentro ou fora do locus espectral curvo. Isso também significa que você precisa de mais bits por componente para obter uma boa precisão, se você armazenar / transmitir imagens expressas em XYZ - 8 bits não servirão, provavelmente 10 bits também, talvez 12 bits bastariam.

Se quisermos fazer exibições que cubram mais da gama visível, eventualmente precisaremos passar para 4, 5 ou mais primárias. No entanto, isso não significa que precisamos de espaços de cores de 4 ou 5 dimensões. Um dispositivo de exibição futurista poderia ser alimentado por imagens no espaço XYZ, por exemplo, e o dispositivo decidiria a melhor forma de gerar cada cor usando as primárias disponíveis.

joojaa Aug 18 2020 at 10:36

Não existe luz negativa ou cor da luz. Ter um modelo com valores negativos pode dar às pessoas ideias engraçadas. Portanto, a luz se comporta estritamente como números naturais positivos.

Claro, no que diz respeito às coordenadas, eles podem ter valores negativos. Mas isso levantaria a questão que você tem: como você pode ter valores fora do intervalo. Bem, não é um gráfico de gama como você está acostumado a ver, é apenas o sistema de coordenadas usado. Não diz nada sobre o dispositivo, como um enredo de, digamos, sRGB. Portanto, pode ser um pouco enganador desenhá-lo da mesma maneira.

Sim, os valores de um sistema de coordenadas baricêntrico fora de um triângulo precisam de valores negativos.

pmw1234 Aug 29 2020 at 03:40

As cores originais CIE RGB incluíam luminância dentro da codificação real, e as cores básicas originais escolhidas para CIE RGB foram escolhidas porque eram fáceis de reproduzir naquela época. Isso tornou muito mais fácil e preciso fazer experimentos com cores que exigiam que as pessoas classificassem as cores ao produzir essas cores com equipamento físico real.

Mas, por causa dessas duas opções, algumas das cores exigiam que o valor vermelho (quando representado em um gráfico) caísse abaixo de zero. Na época, ter valores negativos era considerado bom porque o olho passa por um período difícil na faixa de cores de 700 nm, então um pequeno erro aqui permitiu maior precisão geral.

Porém, isso causou um problema ao traduzir as cores RGB CIE em cores físicas reais. Então, eles convocaram um painel, discutiram (muito) e criaram o espaço de cores CIE XYZ. CIE XYZ tenta separar lumanance (brilho percebido) da gama de cores, codificando-o no canal Y e também remove aqueles valores negativos incômodos.

Porém, eles precisavam representar todas as cores no espaço de cores CIE RGB original no novo espaço de cores CIE XYZ. Portanto, o painel CIE criou funções de correspondência de cores (ou matriz, dependendo de como você olha para ele) que representam exatamente a gama de cores CIE RGB na gama de cores CIE XYZ. Portanto, quando você mapeia os dois gamuts em um gráfico 2D, eles na verdade representam pontos diferentes no mesmo gráfico, pois são representados por valores diferentes.

Lembre-se de que é possível que dois comprimentos de onda diferentes de luz sejam percebidos com a mesma cor exata, desde que a soma ponderada das distribuições espectrais sejam equivalentes. Mas essa é uma história diferente.