balanço de cor rgb

Um módulo avançado que traz ferramentas de gradação de cor da cinematografia à pipeline fotográfica relativa à cena.

Este módulo não é adequado para iniciantes sem conhecimento prévio da teoria da cor, que deveriam limitar-se às configurações de croma global e vivacidade global até que tenham uma boa compreensão das dimensões da cor.

🔗introdução

A gradação de cor é uma parte importante da edição de imagens. Ela pode ajudar a eliminar os matizes de cor não desejados e também pode oferecer um toque de cor criativo que agregará atmosfera a suas imagens. Nos tempo da fotografia em película, a maior parte do ambiente de cor era obtida com a emulsão da película e os produtos químicos de revelação, com parte da matização de cor sendo realizada sob a ampliadora com cabeças coloridas. Isto consumia recursos custosos e era reservado principalmente para a indústria do cinema, onde o trabalho era realizado por um colorista.

Na era digital, onde as imagens em RAW parecem planas e uniformes, a gradação de cor assume o mesmo papel que as emulsões das películas, reintroduzindo mudanças de cor com fins estéticos. Isto também pode servir para harmonizar a paleta de cores de uma série de imagens (que podem ter sido tiradas em diferentes condições) para obter um aspecto global consistente. Para esta tarefa, o vetorscópio também é extremamente útil.

Os coloristas usualmente dividem a gradação de cor em dois passo distintos:

  1. Gradação de cor primária, que tem como objetivo corrigir as tonalidades de cor não desejadas e criar um ponto de partida neutro, e

  2. Gradação de cor secundária, que fornece à imagem sua aparência e atmosfera finais.

É melhor deixar a gradação de cor primária para o módulo calibração de cor, que opera em um marco físico mais adequado para a correção do iluminante. O balanço de cor rgb, por outro lado, se ocupa principalmente da gradação de cor secundária. Realizar uma gradação de cor primária verdadeiramente neutra deverá tornar a gradação de cor secundária fácil de transferir entre imagens (por meio de estilos, predefinições ou copiar e colar) com um efeito similar.

🔗princípios gerais

O módulo balanço de cor rgb é um aperfeiçoamento com base na Lista de Decisões de Cor da Sociedade Americana de Cinematografia (ASC CDL, sigla em inglês), e usa máscaras alfa para permitir que o efeito seja adequadamente dividido entre sombras e realces (altas luzes). O CDL clássico atua sobre todo o intervalo de luminância, e cada um dos seus parâmetros recebe mais peso em algumas partes da imagem somente como efeito colateral da matemática envolvida.

Este módulo funciona, em sua maior parte (4 vias, croma, vivacidade, contraste), em um espaço de cor RGB linear desenhado especificamente para a gradação de cor. Este espaço de cor exibe um espaçamento uniforme de matizes perceptuais enquanto mantém uma luminância escalonada fisicamente 1. A parte perceptual do módulo (saturação e brilhância) funciona no espaço de cor JzAzBz 2, que proporciona uma escala perceptual tanto de luminosidade como de cromaticidade adequada para imagens HDR. Ambos os espaços de cor asseguram que a saturação e as mudanças de croma ocorram com uma matiz constante, o que não é o caso da maioria dos outros operadores de saturação do darktable (especialmente no módulo anterior balanço de cor).

O módulo balanço de cor rgb espera uma entrada linear relativa à cena e produz uma saída RGB relativa à cena, que pode ou não ser linear, dependendo das configurações do módulo (contraste e potência delinearão a saída).

At its output, color balance RGB checks that the graded colors fit inside the pipeline RGB color space (Rec. 2020 by default) and applies a soft saturation clipping at constant hue, aiming to retarget out-of-gamut color to the nearest in-gamut color by scaling both chroma and lightness. This prevents the chroma and saturation settings from pushing colors outside of the valid range and allows more drastic adjustments to be safely used.

Note que este módulo é regido pelas definições CIE de crominância e saturação, como explicado na seção dimensões da cor.

🔗controles do módulo

🔗aba mestre

deslocamento de matiz
Rotaciona todas as cores na imagem de um ângulo sobre o plano de cromaticidade, com luminância e croma constantes. Você pode usar este controle para eliminar a luz de cor derramada sobre um assunto ou para alterar rapidamente a cor de algum objeto. Em geral, esta configuração é melhor aplicada localmente, usando máscaras.
vivacidade global
Isto afeta a dimensão de croma de cor em toda a imagem, dando prioridade para as cores com baixo croma. Isto permite aumentar o croma de cores neutras sem exagerar os pixels já coloridos.
contraste
Esta configuração é aplicada no canal de luminância com matiz e croma constantes. O ajuste do pivô (fulcrum) (na aba máscaras, em pivô (fulcrum) de contraste de cinza) permite estabelecer um ponto neutro da curva de contraste:
  • no pivô, a curva de contraste não modifica a luminância,
  • abaixo do pivô, a curva de contraste diminui a luminância para valores de contraste positivos ou aumenta para valores negativos,
  • acima do pivô, a curva de contraste aumenta a luminância para valores de contraste positivos ou diminui para valores negativos.

O pivô tem um valor de 18,45% por padrão, que é consistente com o fluxo de trabalho atual relativo à cena e deve adaptar-se à maioria dos casos de uso (assumindo que o brilho global tenha sido corrigido como recomendado usando o módulo exposição).

O algoritmo de contraste proporciona resultados naturais que imitam a parte central da curva de contraste de uma película analógica. No entanto, ele também aumentará o alcance dinâmico da imagem, o que pode anular as configurações do fílmico no pipeline. Para ajustes de contraste global, você deveria normalmente usar o módulo equalizador de tons – o controle deslizante de contraste do balanço de cor rgb é melhor usado com máscaras, por exemplo, para correções seletivas sobre o primeiro plano ou o plano de fundo.

🔗gradação linear de croma

A gradação linear de croma afeta a dimensão de croma proporcionalmente a sua entrada, com matiz e luminância constantes. Faz isto globalmente, com um coeficiente plano (usando o croma global), bem como em cada uma das máscaras de sombras, meios-tons e realces (definidas na aba máscaras abaixo de faixas de luminância).

🔗gradação de saturação perceptual

A gradação de saturação perceptual afeta tanto a luminância como as dimensões de croma em um espaço perceptual, proporcionalmente ao seu valor de entrada, com um matiz constante. Isto é feito globalmente, com um coeficiente plano (usando a _saturação global), bem como em cada uma das máscaras de sombras, meios-tons e realces (definidas na aba máscaras abaixo de faixas de luminância).

🔗gradação de brilhância perceptual

A gradação de brilhância perceptual afeta tanto a luminância com as dimensões de croma, em um espaço perceptual, proporcionalmente a seu valor de entrada, com matiz constante e em direção ortogonal à saturação. Seu efeito é próximo a alterar a exposição, mas escalonado perceptualmente. Isto é feito globalmente, com um coeficiente plano (usando a brilhância global), bem como em cada uma das máscaras de sombras, meios-tons e realces (definidas na aba máscaras abaixo de faixas de luminância).

🔗aba 4 vias

Cada uma das configurações da aba 4 vias é composta pelos mesmos três componentes, que definem uma cor usando coordenadas independentes:

  1. luminância,

  2. matiz,

  3. croma.

A entrada de cor como está define uma mudança de cor aplicada à imagem globalmente ou sobre o intervalo de luminância especificado.

Cada controle deslizante de matiz tem um seletor de cor, que pode ser usado para calcular a cor do oposta da região selecionada. Isto é útil para reverter as tonalidades de cor não desejadas (por exemplo, avermelhamento da pele), já que alterar a cor para sua tonalidade oposta a neutraliza.

🔗deslocamento global

Isto é equivalente ao deslocamento da ASC CDL e se reduz a adicionar um valor RGB constante a todos os pixels, muito parecido com a correção do nível de preto no módulo exposição. Este controle não usa mascaramento.

🔗elevação nas sombras

Isto é conceitualmente equivalente à elevação de elevação/gama/ganho, ainda que implementado de maneira diferente, e recorre à multiplicação dos pixels mascarados por um valor RGB constante. É aplicado usando a máscara sombras.

🔗ganho nos realces

Isto é equivalente à inclinação da ASC CDL, e volta a multiplicar os pixels mascarados por um valor RGB constante. É aplicado usando a máscara realces.

🔗potência

Isto é equivalente à potência da ASC CDL, e recorre à aplicação de um expoente RGB constante. Não é mascarado e deve ser normalizado, uma vez que a função potência tem um comportamento diferente acima e abaixo de 1, e estamos em um pipeline limitado onde o branco é tipicamente maior que 1. O parâmetro de normalização está disponível na aba máscaras abaixo de pivô (fulcrum) de branco.

🔗aba máscaras

Esta aba define os controles auxiliares para as abas anteriores. Os controles de mascaramento tipicamente não requerem nenhuma modificação pelo usuário uma vez que os padrões são calibrados para atender a maioria das necessidade e cumprir as expectativas normais do pipeline relativo à cena. Você somente deveria alterar estas configurações em cenários específicos.

🔗faixas de luminância

O gráfico mostra a opacidade (no eixo y) das 3 máscaras de luminância em relação com a luminância dos pixels (no eixo x). A curva mais escura representa a máscara das sombras, a mais brilhante a máscara dos realces e a terceira curva representa a máscara dos meios-tons.

Somente a s máscaras das sombras e dos realces pode ser controladas diretamente – a máscara dos meios-tons é calculada indiretamente a partir das outras e atua como uma variável de ajuste.

decaimento de sombras
Controla a suavidade ou dureza da transição de completamente opaco (100%) à completamente transparente (0%) para a máscara de sombras.
pivô (fulcrum) de cinza médio de máscara
Define o valor de luminância onde todas as três máscaras possuem 50% de opacidade. Na prática, isto é usado para definir como a imagem é separada em sombras e realces.
decaimento de realces
Controla a suavidade ou dureza da transição de completamente opaco (100%) à completamente transparente (0%) para a máscara de realces.

Para cada uma destas configurações, um botão de máscara, localizado à direita do controle deslizante, mostra a máscara apropriada (sombras, meios-tons, realces), sobreposta como um tabuleiro de xadrez. A área ainda visível da imagem (não oculta pela máscara) é a área que será afetada pelos controles deslizantes de sombras, meios-tons e realces nas outras abas.

Todas as vistas prévias das máscaras mostram a saída do módulo, incluindo as mudanças de cor realizadas, assim você pode também ativá-las enquanto edita para ver somente a parte afetada da imagem.

As máscaras de luminância são calculadas à entrada do módulo, o que significa que significa que são insensíveis às mudanças de luminância realizadas dentro do módulo.

🔗limite

pivô (fulcrum) de branco
Estabelece a luminância de ponto branco em EV. Isto é usado para normalizar a configuração de potência na aba 4 vias. Implementações de funções de potência relativas à cena assumem que o branco está à 100%, o que elimina a necessidade de normalização. Para fins relativos à cena, isto deve ser levado em conta.

O seletor de cor à direita do controle automaticamente define o pivô de branco para a máxima luminância da região selecionada, que deve ser suficiente na maioria dos casos.

pivô (fulcrum) de contraste de cinza
Define o pivô para a configuração de contraste da aba mestre. Isto corresponde ao valor de luminância que não se modificará com o ajuste de contraste. Esta configuração normalmente coincide com o valor linear do cinza médio. Se você seguiu as recomendações do fluxo de trabalho relativo à cena e definiu o brilho global mais cedo no pipeline, usando o módulo exposição, o valor correto deve normalmente ser algo em torno de 18-20%.

O seletor de cor à direita do controle automaticamente define o pivô de contraste de cinza para a luminância média da região selecionada. Isto se baseia na suposição de que a luminância média está normalmente próxima do cinza médio, o que não é verdadeiro se você tiver reflexos especulares ou fontes de luz primária no quadro, ou imagens de chave alta/baixa.

🔗fórmula de saturação

Note que essa configuração não é realmente apropriada para a aba máscaras (já que não está tecnicamente relacionada às máscaras), mas é colocada aqui porque não deve ser usada regularmente e com o espírito de economizar algum espaço de exibição. Duas opções são fornecidas:

JzAzBz (2021)
Este modo é o algoritmo de saturação original. Ele usa o espaço de cores uniforme JzAzBz (UCS) para calcular a saturação. Este espaço de cores não se destina a mudanças de cores e sua luminosidade não leva em conta o efeito Helmholtz-Kohlrausch, que afirma que as cores coloridas parecerão mais brilhantes do que cores neutras ou quase neutras (cinzas e pastéis) com a mesma luminância. Também sofre de comportamento não suave perto do preto, com cores muito escurecidas.
UCS do darktable (2022)
O Darktable Uniform Color Space foi projetado desde o início, usando conjuntos de dados de medição psicoperceptiva , com o único propósito de manipulação de cores (saturação) realizada por este módulo. Esse espaço de cores é responsável pelo efeito Helmholtz-Kohlrausch e possui uma fórmula de mapeamento de gama integrada que é mais precisa e eficiente do que pode ser alcançado com o JzAzBz. Ele exibe um comportamento mais suave que torna as mudanças de saturação mais uniformes em toda a faixa de luminosidade.

🔗configurações de pré-visualização de máscara

Esta configuração se aplica às pré-visualizações da máscara, exibidas ao clicar no botão de máscaras na seção faixas de luminância. Estes configurações são salvas globalmente, assim serão aplicadas a todas as imagens subsequentes, a menos que sejam alteradas.

cor 1 e 2 do tabuleiro
Define as duas cores para o tabuleiro usado para camada da máscara. Você pode defini-las com cores opostas da imagem atual para melhorar a legibilidade.
tamanho do tabuleiro
Define a largura das células do tabuleiro de xadrez em pixels (ajustado de acordo com a configuração de DPI da tela).

🔗perguntas frequentes

🔗saturação ou croma?

Como descrito na seção dimensões da cor, a saturação e a croma percorrem o mesmo plano (luminosidade, croma) em direções diferentes. Adicionalmente, a croma do balanço de cor rgb usa um espaço linear relativo à cena, enquanto a saturação usa um espaço perceptual, que altera a escala de cor para obter um espaçamento uniforme.

Na prática, você deve utilizar a configuração de croma se deseja preservar a linearidade da emissão de luz da cena e/ou manter a luminância inalterada. No entanto, estas mudanças podem afetar a alguns matizes mais que a outros, devido ao fato de que o espaço de cor não possui uma escala perceptual completa.

A saturação está mais próxima do efeito de mesclar a pintura branca com alguma cor base. Reduzir a saturação do vermelho o degradará para o rosa, enquanto reduzir seu croma o degradará para um tom de cinza com a mesma luminância. A saturação é talvez a maneira mais intuitiva de interagir com a cor, devido a sua conexão com a pintura.

Escolher um ou outro é principalmente uma questão de decidir onde no gráfico (luminosidade, croma) deseja colocar suas cores e onde elas deverão começar. Para alcançar as cores pastéis, a saturação é o caminho a seguir. Para alcançar cores similares ao laser (quase monocromático), com o risco de parecer sintético, o croma é o caminho a seguir.

🔗qual a conexão com elevação/gama/ganho?

O algoritmo elevação/gama/ganho se baseia em um espaço de cor relativo à exibição, já que assume um alcance dinâmico simétrico e limitado, com um ponto de branco à 100% e cinza à 50%. Como tal, é simplesmente inutilizável no espaço relativo à cena. No entanto, a única parte da incompatibilidade é a elevação. O gama é exatamente a potência da ASC CDL, e o ganho é exatamente a inclinação da ASC CDL.

O módulo balanço de cor rgb simplesmente tem duas inclinações ao invés de uma: o ganho, aplicado nos realces extraídos de toda a imagem pela máscara, e a elevação, aplicada de maneira similar mas nas sombras.

🔗mudar o contraste

Enquanto o balanço de cor rgb se trata principalmente de cor (outros módulos manipulam o contraste global em formas que preservam a cromaticidade), a luminância é uma parte tão importante da cor como o matiz e o croma, e também deve tratar-se aqui, porque a percepção de saturação depende disso. Se deseja converter o vermelho em rosa, por exemplo, ao reduzir seu croma obterá um cinza, assim você precisa também aumentar sua luminância.

Existem diversas maneiras de alterar o contraste no balanço de cor rgb, seja localmente (com máscaras) ou globalmente (sem):

  • Na aba mestre, use a configuração de contraste (possivelmente junco com o pivô (fulcrum) de contraste de cinza na aba máscaras). Esteja ciente de que isto aumentará o ponto banco e, portanto, aumentará o alcance dinâmico da imagem, o que pode anular os ajustes do módulo fílmico mais à frente no pipeline.

  • Na gradação de saturação perceptual, diminuir a saturação dos realces e aumentar das sombras para produzir um aumento de contraste de luminância.

  • Na gradação de brilhância perceptual, adicione brilhância nos realces e remova nas sombras para produzir um aumento de contraste de luminância.

  • Na aba 4 vias, defina a luminância da elevação de sombras com valores negativos e da ganho em realces com valores positivos, o que também produzirá um aumento de contraste de luminância.

A diferença entre estes métodos é como se ponderará o efeito em relação à entrada do módulo. Recomenda-se realizar a maioria dos ajustes de contraste de luminância nos módulos fílmico e equalizador de tons, e em seguida realizar as modificações finais no balanço de cor rgb enquanto examina as cores.

🔗processamento interno

É a seguinte a ordem interna de operações dentro do módulo:

  1. Transformar do pipeline RGB para o espaço Kirk/Filmlight Ych,

  2. Aplicar mudança de matiz com croma e luminância constantes,

  3. Calcular as máscaras de luminância com Y,

  4. Aplicar as configurações de croma linear e vivacidade com matiz e luminância constantes,

  5. Transformar para o espaço Kirk/Filmlight RGB,

  6. Aplicar as configurações de 4 vias (exceto potência de luminância),

  7. Transformar para o espaço Kirk/Filmlight Yrg,

  8. Aplicar a potência de luminância e contraste em Y,

  9. Transformar para o espaço JzAzBz,

  10. Aplicar as configurações de saturação perceptual e brilhância perceptual,

  11. Recortar suavemente o croma usando o gama RGB do pipeline com matiz e luminosidade constantes,

  12. Transformar de volta à pipeline RGB.

🔗ressalvas

Configurar o croma global em -100% não produzirá uma imagem monocromática real, como é comum em outros algoritmos. A razão para isto é que o espaço RGB usado tem um ponto branco D65 definido no espaço CIE LMS 2006, enquanto o darktable usa um ponto branco definido no espaço CIE XYZ 1931, e não existe uma conversão exata entre estes espaços. O resultado será, portanto, uma imagem em branco e preto ligeiramente tingida. Se sua intenção é obter uma imagem real em branco e preto, use o canal de luminância, o módulo calibração de cor oferece uma predefinição P&B: baseado em luminância que faz exatamente o mesmo mas sem a discrepância do ponto branco.

Este módulo tem seu mapeamento de gama (contra o pipeline RGB) ativado permanentemente. Isto significa que se sua imagem original contém algumas cores em grande parte fora do gama na entrada do módulo, simplesmente ativar balanço de cor rgb sem nenhuma configuração em particular alterará ligeiramente suas cores. Provavelmente isto seja para melhor.

A saturação máxima permitida no espaço de trabalho RGB do pipeline é registrada para cada matiz de cor ao iniciar o módulo, e posteriormente é cacheada em uma LUT (sigla em inglês) (tabela de busca) para minimizar os cálculos. Se o perfil de trabalho for modificado posteriormente, o balanço de cor rgb não é notificado, o que significa que não vai atualizar a LUT de matiz/saturação. Para forçar uma atualização da LUT basta alterar qualquer parâmetro do módulo balanço de cor rgb e em seguida alterá-lo de volta. Não é recomendado alterar o espaço de trabalho RGB no meio do caminho de uma sessão de edição, uma vez que isto pode resultar em alterações inesperadas de matiz e croma.

Por razões de desempenho, as conversões não lineares de e para o espaço de trabalho RGB são ignoradas, o que significa que a colorimetria interna estará errada quando são usados espaços de cor não lineares. Note que não há razão para usar espaços de cor não lineares como o RGB, uma vez que tornam a mesclagem de alfa mais trabalhosa sem obter nenhum benefício.


  1. Richard A. Kirk, Chromaticity coordinates for graphic arts based on CIE 2006 LMS with even spacing of Munsell colours, 2019. https://doi.org/10.2352/issn.2169-2629.2019.27.38 ↩︎

  2. Safdar et al., Perceptually uniform color space for image signals including high dynamic range and wide gamut, 2017. https://doi.org/10.1364/OE.25.015131 ↩︎

translations