Skip to main content

Кнопка настроек обработки изображения через GPU

GPU — достаточно мощный инструмент для обработки изображения. Его единственный недостаток — это прожорливость. Он требует очень много ресурсов. Но при этом дает возможность делать с изображением все, что только сможет придумать и реализовать разработчик. В нашем случае мы вынуждены соблюдать режим экономии. Учитывая сегодняшнюю востребованность UHD разрешения, число возможных обработок резко снижается.
Если вам необходимо использовать все, что только возможно, то имеет смысл отказаться от UHD в пользу FHD, даже если вам кажется, что ваше устройство — ракета.
GPU имеет возможность более аккуратно работать с сигналом, но он очень зависит от того, что получает от сенсора. Именно RAW-сигнал сенсора является основой основ. Если мы потеряли информацию до GPU, GPU не сможет ее вернуть. Ниже в разделе «Обратное тонирование» есть утрированный пример того, о чем здесь речь.

Настройка GPU-шумодава и GPU-резкости

Данный раздел GPU-фильтров содержит в себе функцию достаточно примитивного шумодава и примитивной резкости. Почему они примитивные? Потому что за один проход невозможно сделать правильное размытие или добавить резкости. А произвести больше одной обработки 4К изображения сегодня не способен ни один мобильный GPU. Эта функция была добавлена для тех случаев, когда хоть что-то лучше, чем ничего. Мы не можем сказать, что данная функция совсем бесполезна. Нет. Она сбалансирована на столько, на сколько это возможно для мобильных устройств. Мы постарались сделать, чтобы она выполняла свою функцию, но нагрузка оставалась в адекватных пределах.
Две предустановки ничего не меняют и ничего не предлагают. «ВЫКЛ» говорит приложению, что функция отключена. «Пустой» является пустой предустановкой, которая предназначена для настройки с нуля. Оба пункта не добавляют нагрузки, пока не смещен ни один регулятор.

Радиус размытия

Радиус окружности вокруг целевого пикселя для расчета и замены его усредненным пикселем. Если сила размытия находится в положении 0, то радиус размытия ни на что не влияет. 

Сила размытия

Определяет насколько сильно будет заметно размытие.

Радиус резкости

Радиус окружности вокруг целевого пикселя для расчета и замены его более контрастным пикселем. Да, резкость - это контраст соседних пикселей. Радиусом вы определяете, как далеко друг от друга находятся пиксели, определяемые как соседние.

Сила резкости

Определяет насколько сильно будет заметно изменение резкости. Резкость применяется после размытия.

Выбор и настройка GPU-гамма-кривой

Параметры GPU-гамма-кривых

Обратное тонирование

Данная настройка была введена по принципу работы программ нелинейного монтажа. Процесс приведения логарифмически кодированного изображения в стандартный вид, например, общепринятый Rec.709, называется интерпретацией исходного материала.
Обратное тонирование работает только с гамма-кривой, выбранной в настройках сенсора, т.е. не учитывает гамут и интерпретирует сигнал в линейный, т.е. не делает второй шаг по применению целевой гамма-кривой.
Выбор целевой гамма-кривой ложится на пользователя. Именно выбор гамма-кривой из списка - это и есть второй шаг интерпретации.
Зачем это может понадобиться? Если в GPU пришел сигнал с потерянной информацией, то гибкость такого материала теряется и все дальнейшие обработки изображения могут приводить к артефактам. У нас есть возможность «попросить» сенсор доставить нам, до момента конвертации изображения в 8 бит, побольше информации, побольше деталей в тенях. Мы, в свою очередь, через обратное тонирование приводим изображение в 0 (линейное). Из линейного сигнала начинаем рисовать то, что нам хочется, имея в распоряжении больше информации на входе.
Т.е. мы имеем возможность воспроизвести весь процесс постобработки изображения на лету до того, как кодек сожмет изображение.
Здесь важно понимать, что чем меньше информации вы получили с сенсора через настройки сенсора, тем меньше возможностей вы будете иметь при работе с GPU.
Давайте рассмотрим утрированный пример.

В настройках GPU-гамма-кривой выбрано обратное тонирование и гамма-кривая Rec.709. И эти настройки мы не меняем от кадра к кадру. На сенсоре для первого кадра выбрана гамма-кривая mLog 100%, для второго — яркость -50, для третьего — яркость -100. Мы имеем возможность наблюдать, как сигнал с сенсора влияет на то, что получит GPU для обработки. Чем ниже яркость RAW-сигнала, тем меньше деталей и цвета получит GPU. При этом те же манипуляции в GPU-гамма-кривой не приводят к потере цвета и деталей (яркость -100). Еще раз вывод: с сенсора имеет смысл получать больше, тогда GPU будет иметь больше возможностей для обработки сигнала.

Вторая функция обратного тонирования заключается в борьбе с проблемой малого количества точек гамма-кривой на сенсоре. Если у нас 128 точек, то обратное тонирование превращает ломанную кривую из 128 точек в плавную гамма-кривую из 4096 точек (в некоторых случаях 2048 или 1024, но не ниже). 

Яркость

Выгибает гамма-кривую в дугу по всей длине. Особенность заключается в том, что дуга имеет симметричную форму, являясь частью окружности. Больше всего воздействует на средние, меньше на тени и света. Точка черного и белого остаются на месте.

Гамма (γ)

Выгибает гамма-кривую в логарифмическую дугу. Стандартная формула y=x/γ. Воздействует на ту область яркостей, которая считается самой важной для нашего зрения. Это где-то между тенями и средними. Точка черного и белого остаются на месте.

Контраст и ось контраста

Два параметра, неотделимые друг от друга.
Контраст — это S-кривая. При позитивном значении искривляется тенями вниз, светами вверх, т.е. затемняет тени, высветляет света. И наоборот при негативном.
При значении 1.0 выглядит как линейная прямая.
Ось контраста определяет границу, где кончаются тени и начинаются света.
Контраст делит кривую на две части, поэтому понятия средних в нем не существует.
При регулировке контраста через S-кривую, точка черного и белого остаются на месте.

Тени

Параметр воздействует на нижнюю треть (тени) гамма-кривой, слегка затрагивая средние. Позитивное значение поднимает тени, не меняя точки черного. Негативное значение прижимает тени, но вместе с этим понижается точка черного.

Средние

Параметр воздействует на среднюю треть гамма-кривой, слегка пересекаясь как с тенями, так и со светами. Позитивное значение поднимает средние. Негативное значение прижимает средние. Никак не влияет на точку черного и белого.

Света

Параметр воздействует на верхнюю треть (света) гамма-кривой, слегка затрагивая средние. Позитивное значение поднимает света, но вместе с этим повышает точку белого. Негативное значение прижимает света, но никак не влияет на точку белого.

Ч(ерный), точка черного

Точка черного по умолчанию находится в координатах [0,0], т.е. слева внизу.
В отличие от регулятора в разделе настроек сенсора, не имеет ограничения снизу, т.е. можно как повышать точку черного, так и понижать. Позитивное значение поднимает точку черного вверх, и черный становится серым. Чем выше значение, тем серее черный. Влияет на весь диапазон яркостей.

Б(елый), точка белого

Точка белого по умолчанию находится в координатах [1,1], т.е. справа вверху.
Позитивное значение поднимает точку белого, также поднимая общую яркость кадра. Негативное значение понижает точку белого, также снижая общую яркость кадра. Воздействует на весь диапазон яркостей. Здесь стоит заметить, что гамма-кривая в приложении всегда старается смягчить пересветы (применить soft-clip), если такие образовываются при настройке пользовательской кривой.

R(ed), G(reen), B(lue)

Данные регуляторы позволяют изменить яркость каждого канала по-отдельности. Как и яркость общая, параметры не затрагивают точки белого и черного отдельных каналов. Происходит плавное воздействие от теней к светам с пиком в средних.

ВЫКЛ

Данная предустановка отключает работу GPU-гамма-кривой, снимая нагрузку с устройства.

Линейная
Гамма-кривая, отображающая кадр так, как его видит сенсор. Отправная точка для реализации своей гамма-кривой. Все параметры сброшены в значения по умолчанию. На графике просто прямая от левого нижнего угла до правого верхнего (т.е. от [0,0] до [1,1]). 
Ничего не меняет в изображении. Может быть использована как основа для пользовательской гамма-кривой.
Данная гамма-кривая содержит все параметры в значениях по умолчанию для настройки пользовательской гамма-кривой: обратное тонирование, яркость, гамма, контраст и ось контраста, тени, средние, света, точку черного, точку белого, RGB.
mLog 60%
Данная кривая использует преимущество регулятора яркости: отрезки между точками имеют примерно одинаковую длину, что уменьшает шанс проявления постеризации. Также, как и подобает логарифмическому профилю, чуть поднята точка черного, это помогает получить чуть больше деталей в тенях.
Кривая «нарисована» с помощью стандартных регуляторов, поэтому может использоваться как отправная точка.
Используемые параметры: яркость 60, точка черного 16. Не меняет точку белого.
mLog 80%
Данная кривая отличается то mLog 60% силой воздействия, но принцип работы остается тот же самый.
Кривая «нарисована» с помощью стандартных регуляторов, поэтому может использоваться как отправная точка.
Используемые параметры: яркость 80, точка черного 20. Не меняет точку белого.
mLog 100%
Данная кривая еще больше воздействует на изображение, чем mLog 80%, но принцип работы остается тот же.
Кривая «нарисована» с помощью стандартных регуляторов, поэтому может использоваться как отправная точка.
Используемые параметры: яркость 100, точка черного 25.5. Не меняет точку белого.
Rec.709
Стандартная кривая из спецификаций ITU-R BT.709. В простонародье ее еще называют Rec.709 (Scene). Именно эта кривая используется для записи видео до сих пор. Все остальные стандарты, так или иначе затрагивающие Rec.709, касаются исключительно трансляции изображения.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование. Не меняет точки черного и белого.
sRGB
Еще одна кривая из общепринятых стандартов. Обычно используется как гамма-кривая для изображений (одиночных кадров, не видео) и как кривая для трансляции изображения.
Для записи видео обычно не используется. Но никто вам не мешает начать, если вы понимаете, что делаете.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование. Не меняет точки черного и белого.
HLG 87%
Кривая основана на общедоступной формуле гамма-кривой стандарта HLG. Точка черного поднята до 20 (в 10-битном исчислении), точка белого понижена до 890.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
По форме близка гамма-кривой HLG 1 от Sony.
В отличие от гамма-кривой в настройках сенсора не вызывает артефактов клиппинга.
HLG 95%
Кривая основана на общедоступной формуле гамма-кривой стандарта HLG. Точка черного поднята до 20 (в 10-битном исчислении), точка белого понижена до 972.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
По форме близка гамма-кривой HLG 2 от Sony.
В отличие от гамма-кривой в настройках сенсора не вызывает артефактов клиппинга.
HLG 100%
Кривая основана на общедоступной формуле гамма-кривой стандарта HLG. Точка черного поднята до 20 (в 10-битном исчислении), точка белого не изменяется.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
По форме близка гамма-кривой HLG 3 от Sony.
HLG
Гамма-кривая HLG из спецификации Rec.2100, содержащей в себе рекомендации по работе с сигналом HDR-видео.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
mCineLog
Кривая, максимально приближенная к кривой CineLog от LG.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не вызывает артефактов клиппинга.
PQ 1000
Вторая гамма-кривая, используемая в таких стандартах HDR-видео как HDR10 и DolbyVision (настоящий). Абсолютное большинство устройств указывает именно эту кривую в метаданных 10-битный файлов. Исключение составляет только устройства Sony, у которых для 10-битного HDR-видео используется HLG.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не вызывает артефактов клиппинга.
mSLog 82%
Гамма-кривая, приближенная к кривой S-Log1 от Sony, и адаптированная для мобильных устройств. 87% в названии означают, что точка белого понижена до 890 (в 10-битном исчислении).
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не вызывает артефактов клиппинга.
mSLog 92%

Гамма-кривая, приближенная к кривой S-Log2 от Sony, и адаптированная для мобильных устройств. 92% в названии означают, что точка белого понижена до 942 (в 10-битном исчислении).
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не вызывает артефактов клиппинга.

mSLog 100%
Гамма-кривая, приближенная к кривой S-Log3 от Sony, и адаптированая для мобильных устройств. Точка белого не меняется.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
mSLog Extreme
Гамма-кривая, основанная на формуле гамма-кривой mSLog 100%. Отличие заключается в агрессивной выпуклости кривой для экстремального поднятия теней. Светлее тени — больше шумов, это надо иметь в виду.
Точка белого находится на уровне 983 (в 10-битном исчислении). Точка черного поднята до 28.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
ACEScct
Гамма-кривая стандарта ACES. На сегодня очень редко используется для записи видео, но в будущем нам обещают, что для записи видео, предназначенного для последующей обработки, этот стандарт будут использовать.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
mLog-C
Гамма-кривая, приближенная к гамма-кривой Log-C от Arri. Именно Log-C рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
mC-Log3
Гамма-кривая, приближенная к гамма-кривой С-Log3 от Canon. Именно C-Log3 рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
Cineon Film
Гамма-кривая по формуле Cineon Film. Cineon Film рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
mF-Log
Гамма-кривая, приближенная к гамма-кривой F-Log от Fuji. Именно F-Log рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
mV-Log
Гамма-кривая, приближенная к гамма-кривой V-Log от Panasonic. Именно V-Log рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
mLog3G10
Гамма-кривая, приближенная к гамма-кривой Log3G10 от RED. Именно Log3G10 рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
mS-Log2
Гамма-кривая, приближенная к гамма-кривой S-Log2 от Sony. Именно S-Log2 рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.
mS-Log3
Гамма-кривая, приближенная к гамма-кривой S-Log3 от Sony. Именно S-Log3 рекомендуется для интерпретации в программах нелинейного видеомонтажа.
Т.к. кривую невозможно отобразить с помощью стандартных регуляторов, для настройки доступно только обратное тонирование.
В отличие от гамма-кривой в настройках сенсора не имеет регуляторов границ и не вызывает артефактов клиппинга.

Дополнительные GPU-фильтры и регуляторы

Данный раздел содержит в себе фильтры, не имеющие математических формул, как это работает в гамма-кривых. Все действия производятся через сложение или вычитание пикселей, их яркости, или отдельных значений RGB.
В будущем здесь может появится абсолютно все, что не вписывается в концепцию гамма-кривых и гамутов. Вплоть до фильтров инстаграма, как их еще называют Look’ов. 
Две предустановки ничего не меняют и ничего не предлагают. «ВЫКЛ» говорит приложению, что функция отключена. «Пустой» является пустой предустановкой, которая предназначена для настройки с нуля. Оба пункта не добавляют нагрузки, пока не смещен ни один регулятор.

Насыщенность

Отличается от насыщенности в настройках гамута тем, что здесь применяется чисто математический подход. Такой же как в программах нелинейного монтажа.

Цветность

Пытается поднять насыщенность самых ненасыщенных областей. Очень похоже на то, что делает параметр Color Boost в Davinci Resolve.

Контраст

Контраст с подходом через сложение и вычитание яркостей пикселей, а не через применение S-кривой. Можно сказать, что работает менее агрессивно, чем контраст в гамма-кривой.

Тени

Осветляет или затемняет тени через сложение яркостей пикселей. Работает менее агрессивно, чем одноименный параметр гамма-кривой.

Света

Осветляет или затемняет света через сложение яркостей пикселей. Работает менее агрессивно, чем одноименный параметр гамма-кривой.

R(ed), G(reen), B(lue)

Регулирует точку белого каждого из каналов. Точка черного каждого из каналов остается на месте. Таким образом яркость канала сжимается или растягивается по всему диапазону яркостей, больше воздействуя на света, меньше на тени.

Насыщенность теней и светов

Дает возможность снизить насыщенность теней и светов. Чем ниже насыщенность, тем тени ближе к чистому черному, а света ближе к чистому белому. Может создавать эффект правильного баланса белого даже там, где он совсем неправильный. Такая хитрость имеет место быть в кинопроизводстве.