cores ilimitadas

As telas e a maioria dos formatos de arquivo de imagem só podem codificar intensidades RGB confinadas em um determinado intervalo. Por exemplo, imagens codificadas em 8 bits podem conter apenas valores de 0 a 255, imagens em 10 bits, de 0 a 1023, e assim por diante… Padrões gráficos postulam que o máximo desse intervalo, não importa seu valor real, sempre representará o máximo brilho que o meio de exibição é capaz de renderizar, geralmente entre 100 e 160 Cd/m² (ou nits), dependendo do padrão real. Geralmente chamamos esse máximo de “100% relativo à exibição”. O mínimo da faixa, codificado 0, não importa a profundidade de bits usada, torna-se então “0% relativo à exibição”. 100% codifica branco puro e 0% codifica preto puro.

Esta é uma limitação para aplicativos de processamento de imagem, porque significa que qualquer pixel fora desta faixa será recortado para o limite mais próximo, resultando em perda irrecuperável de dados (cores e/ou texturas).

Por muito tempo, o software de processamento de imagem também foi limitado por razões técnicas, e alguns ainda estão, mas agora por escolha de design. Como resultado, eles cortam intensidades RGB em 100% relativo à exibição entre as operações de imagem.

O darktable usa aritmética de ponto flutuante dentro de sua pipeline de cores, o que significa que pode manipular qualquer valor RGB internamente, mesmo aqueles fora do intervalo relativo à exibição, desde que seja positivo. Apenas no final da pipeline, antes que a imagem seja salva em um arquivo ou enviada para exibição, os valores RGB são cortados, se necessário.

Pixels que podem assumir valores fora da faixa de exibição têm “cores ilimitadas”. Pode-se escolher corrigir (ou seja, confinar) esses valores ao intervalo permitido em cada etapa de processamento ou escolher continuar com eles e corrigi-los apenas na última etapa da pipeline. No entanto, verificou-se que o processamento é menos sujeito a artefatos se as cores ilimitadas não forem cortadas, mas tratadas como quaisquer outros dados de cores.

Ao final da pipeline, módulos como rgb fílmico podem auxiliá-lo a remapear valores RGB para a faixa relativa à exibição enquanto maximiza a preservação de dados e evita recortes mais duros, que não são normalmente agradáveis à vista.

No entanto, em todas as etapas da pipeline, você deve certificar-se de não criar valores RGB negativos. As intensidades RGB codificam as emissões de luz e luz negativa não existe. Estes módulos que se baseiam na compreensão física da luz para processar pixels irão falhar se encontrarem uma emissão de luz não física. Por segurança, os valores RGB negativos são recortados sempre que o algoritmo falha, mas o resultado visual pode parecer degradado. Valores negativos podem ser produzidos ao abusar do nível de preto em exposição ou do deslocamento em balanço de cor e deve-se ter cuidado ao usar estes módulos.

translations