Найти в Дзене
GivDevCooler

Один на миллион: как Gradient Handling делает картинку живой

Ладно,
давайте я вам на пальцах объясню, что такое Gradient Handling, а то
многие приносят свои гаджеты, а потом удивляются, почему картинка на
экране "полосатая". А я им объясняю, что дело не в гаджете, а в его
настройках и технологиях.
Так вот, представьте, что вам нужно
нарисовать на экране плавный переход от одного цвета к другому.
Например, от тёмно-синего неба на закате к светло-голубому. В жизни этот
переход выглядит совершенно гладко, без всяких там резких скачков. А
вот на экране, если он не умеет работать с Gradient Handling, вы увидите
не плавный градиент, а такие отчётливые, ступеньчатые полосы. Это
называется banding, или "бандинг". Похоже на то, как будто картинку
сжали и потеряли часть информации. Вроде бы и небо, а вроде бы и
какой-то светофор из полосок.
Почему так происходит? У каждого
пикселя есть ограниченное количество "оттенков", которые он может
показать. Обычно это 8 бит на каждый из основных цветов (красный,
зелёный, синий). Это даёт нам 256 о


Один на миллион: как Gradient Handling делает картинку живой
Один на миллион: как Gradient Handling делает картинку живой

Ладно,
давайте я вам на пальцах объясню, что такое Gradient Handling, а то
многие приносят свои гаджеты, а потом удивляются, почему картинка на
экране "полосатая". А я им объясняю, что дело не в гаджете, а в его
настройках и технологиях.

Так вот, представьте, что вам нужно
нарисовать на экране плавный переход от одного цвета к другому.
Например, от тёмно-синего неба на закате к светло-голубому. В жизни этот
переход выглядит совершенно гладко, без всяких там резких скачков. А
вот на экране, если он не умеет работать с Gradient Handling, вы увидите
не плавный градиент, а такие отчётливые, ступеньчатые полосы. Это
называется banding, или "бандинг". Похоже на то, как будто картинку
сжали и потеряли часть информации. Вроде бы и небо, а вроде бы и
какой-то светофор из полосок.

Почему так происходит? У каждого
пикселя есть ограниченное количество "оттенков", которые он может
показать. Обычно это 8 бит на каждый из основных цветов (красный,
зелёный, синий). Это даёт нам 256 оттенков для каждого цвета, а в сумме,
около 16,7 миллионов цветов. Звучит много, но для плавного градиента
этого бывает недостаточно. Особенно когда градиент большой и длинный.

Вот
здесь и вступает в игру Gradient Handling. Эта технология, это набор
умных алгоритмов, которые позволяют экрану "обмануть" глаз, чтобы
сгладить эти полосы. Самый распространённый способ, это dithering, или
"дизеринг". Что это такое? Вместо того чтобы просто показывать один
цвет, технология dithering смешивает пиксели двух соседних цветов.
Например, вместо того чтобы показать плавный переход от серого к белому,
она показывает серый пиксель, рядом с ним, очень светлый серый, потом
снова серый, и так далее, но так, что со стороны это выглядит как один
новый оттенок. Грубо говоря, она создаёт иллюзию плавного градиента,
используя ограниченное количество доступных цветов.

Этот метод
позволяет значительно уменьшить или даже полностью убрать "полосатость".
Есть разные виды ditheringа: ordered dithering (упорядоченное
смешивание по определённому шаблону), и error diffusion dithering (когда
ошибка от одного пикселя "размазывается" на соседние). Последний метод
считается более продвинутым, потому что он создаёт более естественный и
менее заметный узор.

Так что, когда вам говорят, что у монитора
"широкий цветовой охват" или "поддержка 10-битного цвета", знайте, что
это напрямую связано с Gradient Handling. Чем больше оттенков может
показать экран (например, 10-битный цвет даёт уже больше миллиарда
оттенков), тем более плавные градиенты он может отобразить сам по себе,
без всяких ухищрений. Но даже для 8-битных экранов Gradient Handling,
это спасение. Поэтому, если вы работаете с фотографиями, видео или
просто любите красивые картинки, убедитесь, что ваш монитор поддерживает
эту технологию. Это мелочь, но именно из таких мелочей и складывается
по-настоящему качественное изображение.