Теория цвета
Однако для этого потребуется решить две серьезные проблемы.
О Некоторые дисплеи не способны поддерживать 24-битные цвета. Хотя резко падающие цены на память и делают 24-битные дисплеи более доступными, но все же многие из них имеют более ограниченные возможности. У них может быть встроенная поддержка только по пяти бит для красного, зеленого и синего цветов, или встроенная таблица LUT всего с 256 элементами, каждый из которых допускает, например, только по шесть бит для красного, зеленого и синего цветов.
О Полноцветные изображения могут быть очень большими, что требует значительного дискового пространства и длительного времени при передаче по сети. (Дизайнеры web-страниц хотят использовать только маленькие, быстро скачиваемые изображения; иначе клиенты не будут посещать их страницы.)
Следовательно, нам необходимы методы уменьшения размеров цветных изображений и уменьшения количества цветов, содержащихся в них. Например, нам требуется способ выбора «наилучших» 256 цветов, находящихся в полноцветном изображении, и замены всех остальных цветов изображения «хорошими» заместителями из списка 256 цветов. Такой процесс часто называют квантованием цвета (color quantization). Задача состоит в следующем: по заданным N цветовым тройкам найти К цветов, которые лучше всего представляют исходные цвета. (Обычно К намного меньше, чем N.) Для каждого исходного цвета нужно найти ближайшего представителя (representative). А при желании заменить исходную цветовую тройку индексом 0,1,…, К - 1 ее наилучшего представителя.
В процессе решения этой задачи возникает множество вопросов, например: какой смысл вкладывается в понятия «наилучший» и «ближайший»? Кроме того, поскольку N велико, то любой результативный алгоритм должен быть и достаточно эффективным. Мы рассмотрим четыре различных метода уменьшения количества цветов в изображении. В каждом случае мы предполагаем, что исходное изображение хранится в файле, состоящем из цветовых RGB-троек1, которые могут быть вещественными или байтовыми.