Колірний баланс RGB
Просунутий модуль, який вводить інструменти грейдингу кольорів з кінематографії в фотографічний конвеєр робочого процесу на основі сцен.
Цей модуль не підходить для початківців без попереднього знання теорії кольорів, які, можливо, захочуть притримуватися параметрів глобальна кольоровість та глобальний резонанс, поки вони добре не зрозуміють виміри кольору.
🔗Вступ
Грейдинг кольорів є важливою частиною редагування зображень. Він може допомогти усунути небажані обарвлення, а також може надати креативну колірну гаму, яка додасть атмосфери вашим зображенням. За часів плівкової фотографії більша частина колірної атмосфери отримувалась за допомогою плівкової емульсії та хімічних проявників, причому деякий час проводився під збільшувачем з кольоровими головками. Це споживало дорогі ресурси і було здебільшого зарезервовано для кіноіндустрії, де роботу виконував колорист.
У цифрову епоху, коли raw зображення виглядають плоскими і рівномірними, грейдинг кольорів відіграє ту саму роль, яку виконували емульсії плівки, знову вводячи кольорові зміщення в естетичних цілях. Він також може служити для гармонізації колірної палітри серії зображень (які, можливо, були зроблені за різних умов) для досягнення стабільного глобального вигляду. Для цього завдання вектороскоп також надзвичайно корисний.
Колористи зазвичай ділять грейдинг кольорів на два окремі етапи:
-
Первинний грейдинг кольорів має на меті виправити небажані обарвлення та створити нейтральну початкову точку,
-
Вторинний грейдинг кольорів надає зображенню остаточного вигляду та атмосфери.
Первинний грейдинг кольорів найкраще залишити для модуля Калібрування кольору, який працює у фізичній схемі, що краще підходить для корекції освітлювачів. Колірний баланс RGB, з іншого боку, здебільшого стосується вторинної оцінки кольору. Виконання по-справжньому нейтрального первинного грейдингу кольору повинно полегшити передачу вторинного грейдингу кольору між зображеннями (за допомогою стилів, пресетів або копіювання та вставлення) з подібним ефектом.
🔗Загальні принципи
Модуль Колірний баланс RGB є вдосконаленням у порівнянні зі “списком кольорових рішень” Американського товариства кінематографістів (ASC CDL) і використовує альфа-маски для належного розділення ефекту між тінями та світлими тонами. Класичний CDL діє на весь діапазон яскравості й кожному з його параметрів надається більша вага на деяких частинах зображення лише як побічний ефект математики.
Цей модуль працює здебільшого (4 діапазони, Кольоровість, Резонанс, Контраст) у лінійному кольоровому просторі RGB, розробленому спеціально для грейдингу кольорів. Цей колірний простір демонструє рівномірний інтервал перцептивних відтінків, зберігаючи фізично масштабовану яскравість1. Перцептивна частина модуля (Насиченість і Блискучість) працює в кольоровому просторі JzAzBz2, що забезпечує перцептивне масштабування як яскравості, так і кольоровості, що підходить для HDR-зображень. Обидва кольорові простори гарантують, що зміни насиченості та кольоровості відбуваються при незмінному відтінку, що не забезпечується більшістю інших операторів насиченості в Darktable (зокрема, в старому модулі Колірний баланс).
Модуль Колірний баланс RGB очікує лінійний вхід на основі сцен і створює вихід RGB на основі сцен, який може бути або не бути лінійним, залежно від налаштувань модуля (Контраст та Показник степеня делінеаризують вихід).
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.
_Зверніть увагу, що цей модуль дотримується визначень CIE щодо кольоровості та насиченості, як це пояснюється в розділі Виміри кольору.
🔗Елементи керування модулем
🔗Вкладка “Основні параметри”
- Зміщення відтінку
- Повертає всі кольори в зображенні на кут над площиною хроматичності з постійною яскравістю та кольоровістю. Цей елемент керування можна використовувати для видалення “пролитого” кольорового світла на об’єкті або для швидкої зміни кольору якогось об’єкта. Цей параметр зазвичай найкраще застосовувати локально, використовуючи маски.
- Глобальний резонанс
- Це впливає на вимір кольоровості кольору на всьому зображенні, переважно на кольори з низькою кольоровістю. Це дозволяє збільшити кольоровість нейтральних кольорів, не перебільшуючи і без того барвисті пікселі.
- Контраст
- Цей параметр застосовується до каналу яскравості при незмінному відтінку та кольоровості. Налаштування опорної точки (на вкладці маски в Опорна точка контрасту сірого) дозволяє встановити нейтральну точку кривої контрасту:
- в опорній точці крива контрасту залишає яскравість незмінною,
- нижче опорної точки крива контрасту зменшує яскравість для позитивних значень контрасту або збільшує її для негативних значень,
- вище опорної точки крива контрасту збільшує яскравість для позитивних значень контрасту або зменшує її для негативних значень.
-
Опорна точка за замовчуванням має значення 18,45%, що узгоджується з поточним робочим процесом на основі сцен і має відповідати більшості випадків використання (припускаючи, що загальна яскравість була виправлена відповідно до рекомендацій за допомогою модуля Експозиція).
-
Алгоритм контрасту дає природні результати, що імітують центральну частину кривої контрасту аналогової плівки. Однак це також збільшить динамічний діапазон зображення, що може призвести до скасування налаштувань Filmic в конвеєрі. Для глобальних регулювань контрастності зазвичай слід використовувати модуль Еквалайзер тонів – повзунок контрасту модуля Колірний баланс RGB найкраще використовувати з масками, наприклад для вибіркових виправлень переднього або заднього плану.
🔗Лінійний грейдинг кольоровості
Лінійний грейдинг кольоровості впливає на вимір кольоровості пропорційно введеному значенню при незмінному відтінку та яскравості. Він робить це глобально, з плоским коефіцієнтом (з використанням Глобальної кольоровості), а також на кожній з масок Тіней, Середніх тонів та Світлих тонів (визначених на вкладці Маски в розділі Діапазони яскравості).
🔗Перцепційний грейдинг насиченості
Перцепційний грейдинг насиченості впливає на виміри як яскравості, так і насиченості у перцепційному просторі, пропорційно введеному значенню, при постійному відтінку. Він робить це глобально, з плоским коефіцієнтом (з використанням Глобальної насиченості), а також на кожній з масок Тіні, Середні тони і Світлі тони (визначених на вкладці Маски в розділі Діапазони яскравості).
🔗Перцепційний грейдинг блискучості
Перцепційний грейдинг блискучості впливає як на яскравість, так і на кольоровість у перцептивному просторі, пропорційно введеному значенню, при постійному відтінку та в напрямку, ортогональному насиченості. Його ефект близький до ефекту зміни експозиції, але масштабується перцептивно. Він робить це глобально, з плоским коефіцієнтом (з використанням Глобальної насиченості), а також на кожній з масок Тіней, Середніх тонів і Світлих тонів (визначених на вкладці Маски в розділі Діапазони яскравості).
🔗Вкладка “4 діапазони”
Кожне з налаштувань на вкладці “4 діапазони” складається з тих самих трьох компонентів, які визначають колір за допомогою незалежних координат:
-
яскравість,
-
відтінок,
-
кольоровість.
Введення кольору, як це, визначає зміщення кольору, що застосовується до зображення глобально або в межах заданого діапазону яскравості.
Each hue slider has a 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.
🔗Глобальне зміщення
Це еквівалентно зміщенню ASC CDL і зводиться до додавання постійного значення RGB до всіх пікселів, подібно до корекція рівня чорного в модулі Експозиція. Цей елемент керування не використовує маскування.
🔗Підйом тіней
Це концептуально еквівалентно підйому від підйом/гамма/підсилення, хоча реалізовується інакше і зводиться до множення замаскованих пікселів на постійне значення RGB. Застосовується за допомогою маски тіней.
🔗Підсилення світлих тонів
Це еквівалентно нахилу ASC CDL і зводиться до множення замаскованих пікселів на постійне значення RGB. Застосовується за допомогою маски світлих тонів.
🔗Показник степеня
Це еквівалентно степеню ASC CDL і зводиться до застосування постійної експоненти RGB. Не маскується і потребує нормалізації, оскільки степенева функція має різну поведінку вище і нижче 1, і ми знаходимося в необмеженому конвеєрі, де білий колір зазвичай перевищує 1. Параметр нормалізації доступний у масках в параметрі поворотна точка білого.
🔗Вкладка “Маски”
Ця вкладка визначає допоміжні елементи керування для попередніх вкладок. Елементи керування маскуванням, як правило, не потребують будь-яких змін користувача, оскільки за замовчуванням відкалібровані з урахуванням більшості потреб і відповідають нормальним очікуванням щодо конвеєра обробки на основі сцен. Змінювати ці налаштування потрібно лише у певних сценаріях.
🔗Діапазони яскравості
Графіки показують непрозорість (на осі y) трьох масок яскравості відносно яскравості пікселів (на осі x). Найтемніша крива представляє маску тіней, найяскравіша – маску світлих тонів, а третя крива представляє маску середніх тонів.
Тільки масками тіней та світлих тонів можна керувати безпосередньо – маска середніх тонів обчислюється опосередковано на основі інших і діє як змінна регулювання.
- Ослаблення тіней
- Контролює м’якість або жорсткість переходу від повністю непрозорого (100%) до повністю прозорого (0%) для маски тіней.
- Опорна точка середнього сірого маски
- Встановлює значення яскравості, коли всі три маски мають непрозорість 50%. На практиці це використовується для визначення способу поділу зображення на тіні та світлі тони.
- Ослаблення світлих тонів
- Контролює м’якість або жорсткість переходу від повністю непрозорого (100%) до повністю прозорого (0%) для маски світлих тонів.
Для кожного з цих налаштувань кнопка маски, розташована праворуч від повзунка, відображає відповідну маску (тіні, середні тони, світлі тони), накладену як шахівниця. Ще видима область зображення (не прихована маскою) – це область, на яку впливатимуть повзунки тіней, середніх тонів та світлих тонів на інших вкладках.
Усі попередні перегляди масок показують вихід модуля, включаючи будь-які внесені зміни кольору, тому ви можете також активувати їх під час редагування, щоб бачити лише частину зображення, на яку ви впливаєте.
Маски яскравості обчислюються на вході модуля, це означає, що вони нечутливі до будь-яких змін яскравості, зроблених всередині модуля.
🔗Пороги
- Поворотна точка білого
- Встановлює яскравість точки білого в EV. Це використовується для нормалізації налаштування показник степеня на вкладці 4 діапазони. Реалізації степеневих функцій в обробці на основі відображення припускають, що білий колір становить 100%, що позбавляє потреби в нормалізації. Але для цілей обробки на основі сцен це потрібно враховувати.
-
The 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.
- Опорна точка контрасту сірого
- Встановлює точку опори для параметра Контраст на вкладці Основні параметри. Це відповідає значенню яскравості, яке залишиться незмінним при регулюванні контрасту. Цей параметр зазвичай відповідає лінійному значенню середньо-сірого. Якщо ви дотримувались рекомендацій щодо робочих процесів на основі сцен і встановлювали загальну яскравість на початку конвеєру, використовуючи модуль Експозиція, правильне значення, як правило, має бути близько 18-20%.
-
The 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.
🔗Формула насиченості
Зауважте, що цей параметр насправді не підходить для вкладки маски (оскільки він технічно не пов’язаний з масками), але він розміщений тут, оскільки не призначений для регулярного використання та в дусі економії екранного простору. Передбачено два варіанти:
- JzAzBz (2021)
- Цей режим є оригінальним алгоритмом насиченості. Він використовує однорідний колірний простір JzAzBz для обчислення насиченості. Цей колірний простір не призначений для колірних змін, і його світлість не враховує ефект Гельмгольца-Кольрауша, який стверджує, що барвисті (насиченіші) кольори будуть виглядати яскравіше, ніж нейтральні або майже нейтральні кольори (сірі та пастельні), що мають таку ж яскравість. Він також страждає від негладкої поведінки біля чорного, коли кольори занадто затемнені.
- darktable UCS (2022)
- darktable UCS (Uniform Color Space, однорідний колірний простір) було розроблено з нуля, використовуючи набори даних психоперцептивних вимірювань, з єдиною метою маніпуляції кольором (зміни насиченості), що виконується цим модулем. Цей колірний простір дійсно враховує ефект Гельмгольца-Кольрауша і має вбудовану формулу відображення охоплення, яка є більш точною та ефективною, ніж може бути досягнуто в JzAzBz. Він демонструє більш плавну поведінку, що робить зміни насиченості більш рівномірними по всьому діапазону яскравості.
🔗Параметри попереднього перегляду маски
Ці налаштування застосовуються до попереднього перегляду маски, що відображається натисканням кнопок маски в розділі діапазони яскравості. Ці налаштування зберігаються глобально, тому застосовуватимуться до всіх наступних зображень, якщо їх не змінити.
- Колір шахівниці 1 і 2
- Встановити два кольори для шахівниці маски. Ви можете встановити для них протилежні кольори поточного зображення, щоб полегшити розбірливість.
- Розмір шахівниці
- Встановити ширину комірок шахівниці в пікселях (регулюється відповідно до налаштувань DPI дисплея).
🔗Поширені запитання
🔗Насиченість чи кольоровість?
Як описано в розділі виміри кольору, насиченість та кольоровість блукають по площині (світлість, кольоровість) у різних напрямках. Крім того, кольоровість Колірного балансу RGB використовує лінійний простір на основі сцен, тоді як насиченість використовує перцептивний простір, який масштабує колір для рівних інтервалів.
На практиці слід використовувати налаштування кольоровості, якщо ви хочете зберегти лінійність випромінювання світла та/або зберегти яскравість незмінною. Однак ці зміни можуть вплинути на деякі відтінки сильніше, ніж на інші, через те, що кольоровий простір не повністю перцептивно масштабований.
Насиченість ближче до ефекту змішування білої фарби з певним базовим кольором. Зменшення насиченості червоного погіршить його до рожевого, в той час як зменшення його кольоровості погіршить до відтінку сірого при тій же яскравості. Насиченість – це, можливо, більш інтуїтивний спосіб взаємодії з кольором завдяки її зв’язку з живописом.
Вибір того чи іншого – це здебільшого вирішення питання, куди на графіку (світлість, кольоровість) ви хочете посунути свої кольори і з чого вони починаються. Щоб досягти пастельних кольорів, вибирайте насиченість. Щоб досягти “лазерних” кольорів (майже монохромних), ризикуючи виглядати синтетично, вибирайте кольоровість.
🔗Який зв’язок з підйомом/гаммою/підсиленням?
Алгоритм підйом/гамма/підсилення покладається на кольоровий простір на основі відображення, оскільки він передбачає обмежений та симетричний динамічний діапазон, з точкою білого на 100% та сірого на 50%. Як такий, він просто непридатний для використання у просторі на основі сцен. Однак єдиною несумісною частиною є підйом. Гамма – це саме ASC CDL показник степеня, а підсилення – саме ASC CDL нахил.
Модуль Колірний баланс RGB просто має два нахили замість одного: Підсилення, застосований до світлих тонів, виділених з усього зображення маскою, та Підйом, застосований аналогічно, але до тіней.
🔗Зміна контрасту
Хоча Колірний баланс RGB здебільшого стосується кольору (інші модулі обробляють глобальний контраст із збереженням хроматичності), яскравість – це така ж частина кольору, як і відтінок або кольоровість, і цим також потрібно займатися, оскільки сприйняття насиченості залежить від неї. Наприклад, якщо ви хочете перетворити червоний на рожевий, зменшення його насиченості перетворить його на сірий, тому вам також потрібно збільшити його яскравість.
Є кілька способів зміни контрасту в модулі Колірний баланс RGB, або локально (з масками), або глобально (без них):
-
на вкладці Основні параметри використовуйте параметр Контраст (можливо, поряд із Опорна точка контрасту сірого на вкладці Маски). Майте на увазі, що це підніме точку білого, а отже, збільшить динамічний діапазон зображення, що може призвести до скасування налаштувань Filmic пізніше в конвеєрі.
-
у перцепційному грейдингу насиченості, знебарвте світлі тони та додайте насиченості тіням для підвищення контрасту яскравості,
-
у перцепційному грейдингу блискучості додайте блискучості у світлі тони та видаліть блискучість у тінях для підвищення контрасту яскравості,
-
на вкладці 4 діапазони встановіть яскравість підйому тіней на негативні значення, а яскравість підсилення світлих тонів – на позитивні значення, що також призведе до підвищення контрастності яскравості.
Різниця між цими методами полягає в тому, як ефект буде зважуватися відносно входу модуля. Вам рекомендується зробити більшість налаштувань контрастності та яскравості в модулях Filmic і Еквалайзер тонів, а потім здійснити остаточні зміни в Колірний баланс RGB, розглядаючи кольори.
🔗Внутрішня обробка
Далі наведено внутрішній порядок операцій у модулі:
-
Перетворення з RGB конвеєра в простір Кірка/Filmlight Ych,
-
Застосування зміщення відтінку при постійній кольоровості та постійній яскравості,
-
Обчислення маски яскравості за допомогою Y,
-
Застосування параметрів лінійного грейдингу кольоровості та резонансу при постійному відтінку та яскравості,
-
Перетворення в RGB-простір Kirk/Filmlight,
-
Застосування налаштувань 4 діапазони (крім показника степеня яскравості),
-
Перетворення в простір Kirk/Filmlight Yrg,
-
Застосування показника степеня яскравості та контрасту на Y,
-
Перетворення в простір JzAzBz,
-
Застосування налаштувань перцепційної насиченості та перцепційної блискучості,
-
М’яке обрізання кольоровості з використанням охоплення RGB конвеєра при постійному відтінку та світлості,
-
Перетворення назад до RGB конвеєра.
🔗Застереження
Встановлення глобальної кольоровості на -100% не дасть справжнього монохромного зображення, як це прийнято з іншими алгоритмами. Причиною цього є те, що використовуваний простір RGB має точку білого D65, визначену в просторі CIE LMS 2006, тоді як Darktable використовує точку білого, визначену в просторі CIE XYZ 1931, і немає точного перетворення між цими просторами. Таким чином, результатом буде чорно-біле зображення з незначним відтінком (обарвленням). Якщо ви маєте намір отримати справжнє чорно-біле зображення за допомогою каналу яскравості, модуль Калібрування кольору пропонує пресет Ч/Б: на основі яскравості, який робить точно те ж саме, але без розбіжностей точок білого.
Цей модуль має постійно увімкнене відображення охоплення (відносно RGB конвеєра). Це означає, що якщо ваше оригінальне зображення містить деякі кольори, які значною мірою не відповідають охопленню, просто ввімкнення Колірний баланс RGB без певного налаштування трохи змінить його кольори. І це, мабуть, на краще.
Максимальна допустима насиченість у робочому просторі RGB конвеєра записується для кожного відтінку під час ініціалізації модуля, а згодом кешується в LUT (таблиці пошуку) для збереження продуктивності. Якщо пізніше робочий профіль буде змінено, Колірний баланс RGB не знатиме про це, отже не оновлюватиме кешований LUT з даними відтінок/насиченість . Щоб примусово оновити LUT, ви можете просто змінити будь-яке налаштування в модулі Колірний баланс RGB, а потім повернути попереднє значення. Не рекомендується змінювати робочий простір RGB на півдорозі сеансу редагування, оскільки це може призвести до несподіваних змін кольоровості та відтінку.
З міркувань продуктивності нелінійні перетворення з і до робочого простору RGB вимкнені, а це означає, що внутрішня колориметрія буде неправильною при використанні нелінійних колірних просторів. Зауважте, що немає підстав використовувати нелінійні простори як робочі RGB, оскільки вони роблять альфа-змішування більш складним без будь-якої користі.
-
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 ↩︎
-
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 ↩︎