An advanced module which brings color-grading tools from cinematography into the photographic scene-referred pipeline.

This module is not suitable for beginners with no prior knowledge of color theory, who might want to stick to the global chroma and global vibrance settings until they have a good understanding of the dimensions of color.

Introduction

Korekcja barwna jest ważną częścią edycji obrazu. Może pomóc w usuwaniu niechcianych przebarwień, a także może zapewnić twórczą zmianę odcieni kolorów, które dodadzą atmosfery twoim zdjęciom. W czasach fotografii filmowej większość atmosfery barwnej uzyskiwano za pomocą emulsji filmowej i wywoływaczy, przy czym pewne synchronizowanie kolorów odbywało się pod powiększalnikiem z kolorowymi głowicami. Pochłaniało to kosztowne zasoby i było zarezerwowane głównie dla przemysłu kinowego, gdzie pracę wykonywał kolorysta.

In the digital age, where raw images look flat and even, color-grading assumes the same role that film emulsions did, by re-introducing color shifts for aesthetic purposes. It can also serve to harmonize the color palette of a series of images (which may have been shot under different conditions) to achieve a consistent global look. For this task, the vectorscope is also extremely useful.

Koloryści rozbijają na ogół proces korekcji barwnej na dwa etapy:

  1. Primary color-grading aims to fix unwanted color casts and create a neutral starting point,
  2. Secondary color-grading gives the image its final look and atmosphere.

Primary color-grading is best left to the color calibration module, which operates in a physical framework better suited to illuminant correction. color balance, on the other hand, is mostly concerned with secondary color-grading. Performing a truly neutral primary color-grading should make the secondary color-grading easy to transfer between images (via styles, presets or copy & paste) with a similar effect.

General principles

The color balance module is an improvement over the American Society of Cinematographers Color Decision List  (ASC CDL), and uses alpha masks to allow the effect to be properly split between shadows and highlights. The classic CDL acts on the entire luminance range, and each of its parameters is given more weight on some parts of the image only as a side-effect of the mathematics.

This module works, for the most part (4 ways, chroma, vibrance, contrast), in a linear RGB color space designed specifically for color-grading. This color space exhibits a uniform spacing of perceptual hues while retaining a physically-scaled luminance1. The perceptual part of the module (saturation and brilliance) works in the JzAzBz2 color space, which provides a perceptual scaling of both lightness and chromaticity suitable for HDR images. Both color spaces ensure that saturation and chroma changes take place at constant hue, which is not the case for most other saturation operators in Ansel (notably in the older color balance module).

The color balance module expects a scene-referred linear input and produces a scene-referred RGB output, which may or may not be linear, depending on the module settings (contrast and power will delinearize the output).

At its output, color balance 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 that this module abides by the CIE definitions of chroma and saturation, as explained in the dimensions of color section.

Module controls

Master tab

hue shift
Rotate all colors in the image by an angle over the chromaticity plane, at constant luminance and chroma. You can use this control to remove spilled colored light on a subject or to quickly change the color of some object. This setting is usually best applied locally, using masks.
globalne ożywienie
Wpływa na wymiar nasycenia koloru na całym obrazie, nadając priorytet kolorom o niskim nasyceniu. Pozwala to na zwiększenie nasycenia kolorów neutralnych bez podkreślania już kolorowych pikseli.
kontrast
To ustawienie jest stosowane w kanale luminancji przy stałym odcieniu i nasyceniu barwy. Ustawienie punktu (na karcie masek, pod kontrastem punktu środkowej szarości) pozwala ustawić punkt neutralny krzywej kontrastu:
  • w punkcie podparcia krzywa kontrastu pozostawia niezmienioną luminancję,
  • poniżej punktu podparcia krzywa kontrastu zmniejsza luminancję dla dodatnich wartości kontrastu lub zwiększa ją dla wartości ujemnych,
  • powyżej punktu podparcia krzywa kontrastu zwiększa luminancję dla dodatnich wartości kontrastu lub zmniejsza ją dla wartości ujemnych.

Punkt podparcia ma domyślną wartość 18.45%, która jest spójna z bieżącym trybem scenocentrycznym i która powinna pasować do większości zastosowań (przy założeniu, że globalna jasność została ustawiona według zaleceń przy użyciu modułu ekspozycji).

The contrast algorithm gives natural results that mimic the central part of the contrast curve of analog film. However, it will also increase the image’s dynamic range, which may void filmic settings in the pipe. For global contrast adjustments, you should normally use the tone equalizer module – the color balance contrast slider is best used with masks, e.g. for selective corrections over the foreground or background.

Linear chroma grading

Liniowa korekcja chrominancji wpływa na wymiar chrominancji proporcjonalnie do jej wartości wejściowej, przy stałym odcieniu i luminancji. Robi to globalnie, z płaskim współczynnikiem (przy użyciu globalnej chrominancji), a także dla każdej z masek cieni, tonów średnich i światła (zdefiniowanych na karcie masek w obszarze zakresów luminancji).

Perceptual saturation grading

Korekcja nasycenia percepcyjnego wpływa zarówno na luminancję, jak i na wymiary barwy w przestrzeni percepcyjnej, proporcjonalnie do wartości wejściowej, przy stałym odcieniu. Robi to globalnie, z płaskim współczynnikiem (przy użyciu globalnego nasycenia), a także dla każdej z masek cieni, półtonów i świateł (zdefiniowane na karcie masek w obszarze zakresów luminancji).

Perceptual brilliance grading

Percepcyjna korekcja jasności wpływa zarówno na luminancję, jak i na wymiary barwy w przestrzeni percepcyjnej, proporcjonalnie do jej wartości wejściowej, przy stałym odcieniu iw kierunku prostopadłym do nasycenia. Jej efekt jest zbliżony do zmiany ekspozycji, ale skalowany percepcyjnie. Robi to globalnie, z płaskim współczynnikiem (przy użyciu globalnego nasycenia), a także dla każdej z masek cieni, półtonów i świateł (zdefiniowanych na karcie masek w obszarze zakresów luminancji).

karta “4 sposoby”

Każde ustawienie w karcie 4 sposobów składa się z tych samych trzech komponentów, definiujących kolor przy użyciu niezależnych współrzędnych:

  1. luminance,
  2. hue,
  3. chroma.

Takie dane wejściowe koloru określają przesunięcie koloru zastosowane do obrazu globalnie lub w określonym zakresie luminancji.

Each hue slider has a color picker, which may be used to compute the opponent color of the selected region. This is useful to revert unwanted color casts (e.g. skin redness), since shifting the color to its opponent cast neutralizes it.

Global offset

Jest to równoważne przesunięciu ASC CDL i przywraca ono dodawanie stałej wartości RGB do wszystkich pikseli, podobnie jak korekta poziomu czerni w module ekspozycji. Ta kontrolka nie używa maskowania.

Shadows lift

Jest to koncepcyjnie równoważne wzniosowi z sekcji wznios/gamma/wzmocnienie, chociaż zaimplementowane inaczej, i przywraca on mnożenie zamaskowanych pikseli przez stałą wartość RGB. Jest nakładany za pomocą maski cieni.

Highlights gain

Jest to równoważne nachyleniu ASC CDL i przywraca mnożenie zamaskowanych pikseli przez stałą wartość RGB. Nakłada się je za pomocą maski świateł.

Global power

Jest to równoważne potędze ASC CDL i przywraca stosowanie stałego wykładnika RGB. Nie jest zamaskowana i musi być znormalizowana, ponieważ funkcja potęgowania ma inne zachowanie powyżej i poniżej 1, a my jesteśmy w nieograniczonej kolejce przetwarzania, w której biały jest zwykle większy niż 1. Parametr normalizacji jest dostępny w [maskach](# masks-tab) pod punktem podparcia bieli.

Masks tab

Ta zakładka definiuje pomocnicze kontrolki dla poprzednich zakładek. Kontrolki maskowania zwykle nie wymagają żadnych modyfikacji przez użytkownika, ponieważ ustawienia domyślne są kalibrowane tak, aby odpowiadały większości potrzeb i spełniały normalne oczekiwania dotyczące scenocentrycznej kolejki przetwarzania. Te ustawienia należy zmienić tylko w określonych scenariuszach.

Luminance ranges

Wykresy pokazują krycie (na osi y) 3 masek luminancji względem luminancji pikseli (na osi x). Najciemniejsza krzywa reprezentuje maskę cieni, najjaśniejsza reprezentuje maskę świateł, a trzecia krzywa reprezentuje maskę śródtonów.

Tylko maski cieni i świateł mogą być sterowane bezpośrednio — maska półtonów jest obliczana pośrednio na podstawie innych i działa jako zmienna dopasowująca.

odcięcie cieni
Kontroluje miękkość lub twardość przejścia od całkowicie kryjącej (100%) do całkowicie przezroczystej (0%) maski cieni.
punkt środkowej szarości dla maski
Ustawia wartość luminancji, przy której wszystkie trzy maski mają krycie 50%. W praktyce służy to do określenia, w jaki sposób obraz jest dzielony na cienie i światła.
zanikanie świateł
Kontroluje miękkość lub twardość przejścia od całkowicie nieprzezroczystego (100%) do całkowicie przezroczystego (0%) dla maski świateł.

Dla każdego z tych ustawień przycisk maski, znajdujący się po prawej stronie suwaka, wyświetla odpowiednią maskę (cienie, półcienie, światła) nałożoną jako szachownicę. Wciąż widoczny obszar obrazu (nie ukryty przez maskę) to obszar, na który będą miały wpływ suwaki cieni, półtonów i świateł w innych zakładkach.

Wszystkie podglądy masek wyświetlają dane wyjściowe modułu, w tym wszelkie wprowadzone zmiany kolorów, dzięki czemu można je również aktywować podczas edycji, aby zobaczyć tylko tę część obrazu, na którą mają one wpływ.

Maski luminancji obliczane są na wejściu modułu, są więc niewrażliwe na wszelkie zmiany luminancji, dokonywane wewnątrz modułu.

Thresholds

punkt podparcia bieli
Ustawia luminancję punktu bieli w EV. Jest to używane do normalizacji ustawienia potęgi w zakładce 4 zakresów. Ekranocentryczne implementacje funkcji potęgowej zakładają biel na poziomie 100%, co eliminuje konieczność normalizacji. Dla zastosowań scenocentrycznych musi to jednak zostać wzięte pod uwagę.

The color picker to the right of the slider automatically sets the white fulcrum to the maximum luminance from the selected region, which should be sufficient in most cases.

punkt szarości
Ustawia punkt odniesienia dla ustawienia kontrast na zakładce głównej. Odpowiada to wartości luminancji, która pozostanie niezmieniona przez regulację kontrastu. To ustawienie zwykle odpowiada średniej szarości wartości liniowej. Jeśli postępowałeś zgodnie z zaleceniami dotyczącymi scenocentrycznego przepływu pracy i ustawiłeś globalną jasność na wczesnym etapie, używając modułu ekspozycji, prawidłowa wartość powinna zwykle wynosić około 18-20%.

The color picker to the right of the slider automatically sets the contrast gray fulcrum to the average luminance from the selected region. This relies on the assumption that the average luminance is usually close to middle-gray, which is not true if you have specular highlights or primary light sources in the frame, or for low/high-key images.

Saturation formula

Note that this setting is not really appropriate for the masks tab (since it is not technically related to the masks) but is placed here because it is not meant to be used regularly and in the spirit of saving some display real-estate. Two options are provided:

JzAzBz (2021)
This mode is the original saturation algorithm. It uses the JzAzBz uniform color space (UCS) to compute the saturation. This color space is not meant for color changes and its lightness does not account for the Helmholtz-Kohlrausch effect , which states that colorful colors will look brighter than neutral or near-neutral colors (greys and pastels) having the same luminance. It also suffers from non-smooth behaviour near black, with colors being darkened too much.
Ansel UCS (2022)
The Ansel Uniform Color Space has been designed from the ground up , using psychoperceptual measurement datasets, for the sole purpose of the color manipulation (saturation) performed by this module. This color space does account for the Helmholtz-Kohlrausch effect  and has a built-in gamut mapping formula that is more accurate and efficient than can be achieved in JzAzBz. It displays a smoother behaviour which makes saturation changes more even across the lightness range.

Mask preview settings

Te ustawienia dotyczą podglądów masek wyświetlanych po kliknięciu przycisków masek w sekcji zakresów luminancji. Te ustawienia są zapisywane globalnie, więc zostaną zastosowane do wszystkich kolejnych obrazów, chyba że zostaną zmienione.

kolor 1 i 2 próbnika koloru
Ustawia dwa kolory podkładu maski tablicy szachownicy tła. Możesz ustawić je na przeciwne kolory bieżącego obrazu, aby ułatwić czytelność.
rozmiar próbnika
Ustawia szerokość komórek próbnika w pikselach (dostosowane do DPI monitora).

FAQ

Saturation or chroma?

As described in the dimensions of color section, saturation and chroma roam the (lightness, chroma) plane in different directions. In addition, the chroma of color balance uses a scene-referred linear space, while the saturation uses a perceptual space, which rescales color for even spacing.

W praktyce należy użyć ustawienia chrominancji, jeśli chcesz zachować liniowość sceny emisji światła i/lub zachować niezmienioną luminancję. Te zmiany mogą mieć jednak większy wpływ na niektóre odcienie niż na inne, ponieważ przestrzeń kolorów nie jest w pełni skalowana percepcyjnie.

Nasycenie jest bliższe efektowi zmieszania białej farby z jakimś kolorem bazowym. Zmniejszenie nasycenia czerwieni zdegraduje go do różu, podczas gdy zmniejszenie jego nasycenia spowoduje degradację do szarego odcienia przy tej samej luminancji. Nasycenie jest być może bardziej intuicyjnym sposobem interakcji z kolorem, ze względu na jego związek z malarstwem.

Wybór jednego lub drugiego jest głównie kwestią decyzji, w którym miejscu na wykresie (jasności, nasycenia) chcesz przesunąć kolory i od czego mają zacząć. Aby osiągnąć pastelowe kolory, drogą do osiągnięcia jest nasycenie. Aby osiągnąć kolory przypominające laser (prawie monochromatyczne), ryzykując, że będą wyglądać syntetycznie, należy wybrać chrominancję.

What is the connection with lift/gamma/gain?

Algorytm wznios/gamma/wzmocnienie opiera się na ekranocentrycznej przestrzeni kolorów, ponieważ zakłada ograniczony i symetryczny zakres dynamiczny, z punktem bieli na poziomie 100% i szarości na poziomie 50%. Dlatego też jest po prostu bezużyteczny w przestrzeni scenocentrycznej. Jednak jedyną niezgodną częścią jest wznios. gamma to dokładnie potęga ASC CDL, a wzmocnienie to dokładnie nachylenie ASC CDL.

The color balance module simply has two slopes instead of one: the gain, applied on the highlights extracted from the whole image by a mask, and the lift, applied similarly but on the shadows.

Changing contrast

While color balance is mostly about color (other modules handle the global contrast in chromaticity-preserving ways) luminance is as much a part of color as hue or chroma, and it needs to be dealt with here too, because the perception of saturation relies on it. If you wish to turn red into pink, for example, reducing its chroma will turn it gray, so you need to increase its luminance as well.

There are several ways to change the contrast in color balance, either locally (with masks) or globally (without):

  • In the master tab, use the contrast setting (possibly alongside the contrast gray fulcrum in the masks tab). Be aware that this will raise the white point and therefore increase the dynamic range of the image, which may void filmic settings later in the pipeline.
  • In perceptual saturation grading, desaturate highlights and resaturate shadows to produce a luminance contrast boost,
  • In perceptual brilliance grading, add brilliance in the highlights and remove brilliance in the shadows to produce to a luminance contrast boost,
  • In the 4 ways tab, set the shadows lift luminance to negative values and the highlights gain luminance to positive values, which also produces a luminance contrast boost.

The difference between these methods is how the effect will be weighted relative to the input of the module. You are advised to do the majority of luminance contrast adjustments in the filmic and tone equalizer modules, and then undertake final changes in color balance while examining the colors.

Internal processing

Poniżej przedstawiamy wewnętrzną kolejność operacji w module:

  1. Transform from pipeline RGB to Kirk/Filmlight Ych space,
  2. Apply hue shift at constant chroma and constant luminance,
  3. Compute luminance masks with Y,
  4. Apply the linear chroma and vibrance settings at constant hue and luminance,
  5. Transform to Kirk/Filmlight RGB space,
  6. Apply the 4 ways settings (except luminance power),
  7. Transform to Kirk/Filmlight Yrg space,
  8. Apply luminance power and contrast on Y,
  9. Transform to JzAzBz space,
  10. Apply the perceptual saturation and perceptual brilliance settings,
  11. Soft-clip the chroma using pipeline RGB gamut at constant hue and lightness,
  12. Transform back to pipeline RGB.

Caveats

Ustawienie globalnej chrominancji na -100% nie da prawdziwego obrazu monochromatycznego, jak to ma miejsce w przypadku innych algorytmów. Powodem tego jest to, że używana przestrzeń RGB ma punkt bieli D65 zdefiniowany w przestrzeni CIE LMS 2006, podczas gdy Ansel wykorzystuje punkt bieli zdefiniowany w przestrzeni CIE XYZ 1931 i nie ma dokładnej konwersji między tymi przestrzeniami. Rezultatem będzie więc lekko przyciemniony czarno-biały obraz. Jeśli twoim zamiarem jest uzyskanie prawdziwego czarno-białego obrazu przy użyciu kanału luminancji, moduł kalibracji kolorów oferuje ustawienie wstępne B&W w oparciu o luminancję, które robi dokładnie to samo, ale bez rozbieżności punktu bieli.

This module has its gamut-mapping (against pipeline RGB) permanently enabled. This means that if your original image contains some largely out-of-gamut colors to start with, simply enabling color balance with no particular setting will slightly alter its colors. This is probably for the best.

The maximum saturation allowed in the pipeline working RGB space is recorded for each hue when initializing the module, and is later cached in a LUT (look-up table) to save performance. If the working profile is later changed, color balance is not notified, meaning that it will not update its cached hue/saturation LUT. To force a LUT update, you can simply change any setting in the color balance module, then change it back again. It is not recommended that you change the working RGB space half-way through an editing session, as this could result in unexpected chroma and hue changes.

Ze względu na wydajność pomijane są nieliniowe konwersje z i do roboczej przestrzeni RGB, co oznacza, że wewnętrzna kolorymetria będzie nieprawidłowa podczas korzystania z nieliniowych przestrzeni kolorów. Zwróć uwagę, że nie ma powodu, aby używać nieliniowych przestrzeni jako działającego RGB, ponieważ utrudniają one mieszanie alfa, nie dając w zamian żadnych korzyści.


  1. Richard A. Kirk, Chromaticity coordinates for graphic arts based on CIE 2006 LMS with even spacing of Munsell colours, 2019. ↩︎

  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  ↩︎