Цветовое квантование является важнейшей задачей в области обработки изображений и компьютерной графики. Оно заключается в сокращении количества используемых цветов в изображении при сохранении максимального визуального сходства с оригиналом. Особенно актуальна эта задача при работе с ограниченными палитрами в службах передачи изображений, ретро-гейминге, и облегчении веса файлов для экономии места и ускорения передачи данных. Одним из самых эффективных методов решения поставленной задачи считается алгоритм k-means, который, в свою очередь, может быть существенно улучшен при использовании правильной метрики расстояния для определения цветовых различий. В последние годы внимание специалистов всё больше привлекает новая формула измерения расстояния в цветовом пространстве CIELAB — HyAB, которая оказалась более адекватной с психологической точки зрения и потенциально улучшает качество цветового квантования.
В данной статье мы подробно разберем суть HyAB k-means, его отличия от классических подходов и особенности, делающие его привлекательным для практического применения. Для начала стоит отметить, что традиционные методы сравнения цветов зачастую основываются на вычислении евклидова расстояния в пространстве sRGB. Это пространство удобно для технической реализации, поскольку напрямую связано с моделями отображения цвета на экране, однако оно далеко от идеала с точки зрения восприятия человеком. Цвета, близкие по координатам в sRGB, могут восприниматься весьма отличными, а значительные изменения в восприятии цвета могут быть недостаточно выражены в таких метриках. Эта недостаточная перцептивная однородность приводит к визуальным артефактам при квантовании цветов и снижает качество сжатия изображений.
CIELAB, или L*a*b*, является специализированным пространством цвета, разработанным для более точного отображения восприятия цвета человеческим глазом. В отличие от sRGB, CIELAB разделяет цвет на три компонента: L* отвечает за яркость (люминанс), a* и b* — за цветовые каналы, описывающие переходы между красно-зеленым и желто-синим оттенками соответственно. Именно благодаря такому разбиению CIELAB обеспечивает большую психологическую и визуальную однородность цветовых разницы, делая его предпочтительным выбором во многих задачах компьютерного зрения и графики. Тем не менее, стандартный способ вычисления цветового расстояния в CIELAB — классическая евклидова формула, известная как CIE76 — порой проявляет слабые стороны, особенно при сравнении сильно отличающихся цветов или в синих оттенках. В научной литературе с 1980-х годов появилось несколько улучшенных моделей для вычисления цветовых различий в CIELAB, среди которых выделяются формулы CIE94, CIEDE2000 и другие, более сложные алгоритмы.
Они учитывают сложные восприятия цвета и пытаются корректировать аномалии стандартной эвклидовой метрики. Однако их сложность, а также вычислительная нагрузка, иногда мешают широкому применению в задачах быстрого квантования цветов в больших изображениях. Уникальным решением этой проблемы стала формула, предложенная Саиде Абаси и коллегами в 2019 году, известная сейчас под названием HyAB или формула CD1. Она совмещает в себе элементы как «городского» (Манхэттенского) расстояния для яркости, так и евклидова расстояния для цветовых координат a* и b*. Иными словами, различие в люминансе выражается абсолютным значением разницы, а цветовые компоненты сравниваются по привычной евклидовой формуле.
Такая гибридная формула отражает психологическую раздельность восприятия светлоты и цветности и, что подтверждено экспериментами, лучше описывает визуальные различия при больших дистанциях, не искажая цвета. Модификация k-means с использованием HyAB формулы называется HyAB k-means. Главное отличие от классического алгоритма — изменение критерия расстояния. В классическом k-means каждый пиксель присваивается кластеру с минимальным евклидовым расстоянием в выбранном цветовом пространстве. В HyAB k-means вместо этого применяется HyAB расстояние.
Это, в свою очередь, влияет на процедуру обновления центроидов кластеров: поскольку часть метрики основана на абсолютных разницах (L*), оптимальное значение центрального элемента лучше искать как медиану по яркости, тогда как для цветовых каналов a* и b* подходит среднее арифметическое. Таким образом, алгоритм становится сочетанием k-means и k-медиан, что положительно сказывается на стабильности и визуальном качестве. Применение HyAB k-means для цветового квантования приносит ряд конструктивных преимуществ. Во-первых, благодаря корректному разделению светлоты и цветности, палитра, сформированная таким образом, воспроизводит оттенки более точно, предотвращая искажения, которые часто появляются при использовании стандартного CIELAB или sRGB с евклидовым расстоянием. Особенно хорошо это проявляется в работе с насыщенными тонами, например, зелёными и малиновыми цветами: в классических методах эти оттенки могут терять характерные черты и становиться серыми либо заниженными по интенсивности, тогда как HyAB сохраняет их насыщенность.
Во-вторых, гибкость формулы HyAB позволяет легко регулировать вклад светлоты при вычислении расстояний. Увеличение веса разницы по L* позволяет улучшить детализацию светлых и тёмных участков изображения или подчеркнуть важные детали, при этом не вызывая нежелательных сдвигов оттенков. Это особенно полезно для творческой обработки изображений и эффективного сжатия с сохранением визуальной глубины. Практическая реализация HyAB k-means не требует значительных вычислительных ресурсов сверх стандартного алгоритма, что делает его удобным для интеграции в существующие рабочие процессы и программные продукты по обработке изображений. Более того, наличие открытых кодовых примеров и библиотек с реализацией HyAB позволяет разработчикам быстро оценить данный метод и адаптировать его под собственные задачи.
Однако стоит отметить, что улучшение не является универсальным и не означает, что HyAB k-means всегда превосходит другие методы с точки зрения итогового визуального результата. Например, при очень высоких количествах цветов (более 200) сравнение показывает, что «чистый» sRGB k-means обходит по качеству HyAB в плане гладкости градиентов и плавности переходов. Это связано с особенностями гамма-коррекции, которую встроено содержит CIELAB и которая даёт больше веса тёмным оттенкам. Тем не менее для более ограниченных палитр и задач с явными цветовыми компромиссами HyAB проявляет себя гораздо лучше. Кроме того, как упомянуто в исследованиях, не следует воспринимать HyAB как волшебное решение, способное заменить всю комплексную систему оптимизации цветового квантования.
Главные победы достигаются за счёт комплексной настройки, включающей автоматический выбор числа цветов, дозирование контрастности, устранение цветовой полосатости и качественное дизерингование — при этом HyAB служит отличной базой для улучшения восприятия цвета. Значимость HyAB k-means подтверждается и психологическими экспериментами, в которых участники оценивали разные методы измерения расстояний в цветах. Результаты показали, что именно смешанная формула HyAB лучше всего согласуется с субъективным восприятием крупных цветовых различий. Это наглядно подчёркивает важность учёта особенностей человеческого зрения при разработке алгоритмов обработки изображений. Среди практических примеров, на которых можно увидеть работу HyAB k-means, — знаменитая фотография «шляпы» (The Hats) Дон Кокрана.
В этой картине при традиционном квантовании цвета зеленая шляпа часто теряет яркость и становится приглушённой, магентовая часть головы приобретает сероватый оттенок, а красные шляпы демонстрируют выцветший вид. Но при применении HyAB k-means цвета почти полностью сохраняют свой исходный оттенок, а детали становятся более чёткими и реалистичными. Это доказывает, что даже небольшие изменения в модели расстояния способны масштабно повлиять на восприятие изображения. Очевидно, что HyAB k-means является не просто академическим экспериментом, а реально полезным инструментом в арсенале профессиональных графических дизайнеров, разработчиков приложений по сжатия изображений и энтузиастов цифрового искусства. В эпоху, когда качество и скорость обработки медиа-контента имеют решающее значение, такие усовершенствования предоставляют ценный баланс между эффективностью и визуальной достоверностью.
В заключение важно подчеркнуть, что HyAB k-means представляет собой прогрессивный этап развития цветового квантования, сочетающий теоретическую обоснованность с практической полезностью. Его внедрение позволит добиться более естественного и качественного отображения цветов при ограниченной палитре, что особенно актуально для веб-дизайна, мобильных приложений, ретро-игр и многого другого. Несмотря на то, что HyAB не призван полностью вытеснить традиционные методы, его потенциал очевиден, и с дальнейшим развитием компьютерной графики и увеличением вычислительных мощностей он вполне может стать стандартом в цветовой кластеризации и квантовании.